Function at 0x47c29d
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x348
mov eax, dword [0x58b700]
xor eax, esp
mov dword [esp + 0x344], eax
push ebx
push ebp
push esi
xor esi, esi
push edi
mov edi, edx
mov dword [esp + 0x14], esi
mov edx, ecx
mov dword [esp + 0x18], esi
mov ebx, esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], esi
or ecx, 0xffffffff
mov dword [esp + 0x30], esi
mov eax, dword [edx + 8]
mov dword [edi + 4], eax
mov dword [edi + 0xc], esi
mov esi, dword [edx + 8]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x10], ecx
lea eax, [eax + esi*2]
mov dword [esp + 0x1c], eax
movzx eax, word [eax]
test ax, ax
jne 0x47c30b
and dword [edi + 8], ebx
and dword [edi], ebx
push 0xfffffffffffffffe
pop eax
jmp 0x47c452
mov ebp, eax
test ebp, ebp
je 0x47c8a2
cmp dword [esp + 0x24], 0
je 0x47c38a
push ebp
push str.__t_n_r__
call fcn.005055aa
pop ecx
pop ecx
test eax, eax
je 0x47c866
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov edx, dword [edx + 0xc]
sub eax, edx
sar eax, 1
sub eax, dword [esp + 0x24]
test ecx, ecx
jne 0x47c362
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
mov dword [edx], edi
dec edi
add eax, edi
mov edi, dword [esp + 0x20]
mov dword [edx + 4], eax
jmp 0x47c37b
push eax
mov eax, dword [esp + 0x28]
lea ecx, [edi + 0x10]
lea eax, [edx + eax*2]
push eax
call fcn.00450b91
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
and dword [esp + 0x24], 0
xor eax, eax
and dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x14]
test eax, eax
je 0x47c55a
cmp ebp, 0x3e
jne 0x47c46b
test bl, 0xc0
jne 0x47c482
mov ebp, dword [esp + 0x1c]
mov esi, ebp
sub esi, dword [edx + 0xc]
mov edx, dword [esp + 0x18]
sar esi, 1
cmp edx, 1
jne 0x47c3ef
xor ebp, ebp
mov dword [esp + 0x14], ebp
cmp ecx, edx
jne 0x47c42d
cmp dword [esp + 0x2c], 0x2f
jne 0x47c42d
mov eax, dword [esp + 0x30]
test eax, eax
je 0x47c3e6
push eax
push 0x5681d8
call fcn.005055aa
pop ecx
pop ecx
test eax, eax
je 0x47c42d
or dword [edi + 0xc], 0x10000
jmp 0x47c42d
cmp esi, edx
jle 0x47c425
mov edi, dword [esp + 0x18]
lea eax, [edx + edx]
mov edx, ebp
mov ebp, dword [esp + 0x14]
sub edx, eax
add edx, 2
sub ebp, edx
dec edi
je 0x47c41f
mov cx, word [edx]
mov ax, word [edx + ebp]
add edx, 2
cmp cx, ax
je 0x47c407
mov eax, dword [esp + 0x14]
jmp 0x47c425
xor eax, eax
mov dword [esp + 0x14], eax
test eax, eax
jne 0x47c862
test bl, 0x20
jne 0x47c862
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
lea ecx, [esi + 1]
mov eax, edi
mov dword [edx + 8], ecx
sub ecx, dword [ebx + 4]
mov dword [ebx + 8], ecx
mov dword [ebx], edi
mov ecx, dword [esp + 0x354]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005008c3
add esp, 0x348
ret
cmp ebp, 0x3c
jne 0x47c482
cmp ecx, 2
je 0x47c881
cmp ecx, 0xffffffff
je 0x47c881
test cl, 1
je 0x47c51f
test bl, 0xc0
je 0x47c4b0
cmp ebp, 0x22
jne 0x47c4a1
test bl, bl
jns 0x47c50e
xor ebx, 0x80
jmp 0x47c50e
cmp ebp, 0x27
jne 0x47c50e
test bl, 0x40
je 0x47c50e
xor ebx, 0x40
jmp 0x47c50e
cmp ebp, 0x22
jne 0x47c4c5
test ebx, 0x100
je 0x47c50e
xor ebx, 0x180
jmp 0x47c50e
cmp ebp, 0x27
jne 0x47c4da
test ebx, 0x100
je 0x47c50e
xor ebx, 0x140
jmp 0x47c50e
cmp ebp, 0x3d
jne 0x47c4ef
cmp dword [esp + 0x2c], ebp
je 0x47c4ef
test ebx, 0x100
jne 0x47c4f7
jmp 0x47c508
test ebx, 0x100
je 0x47c50e
push ebp
push 0x5681e8
call fcn.005055aa
pop ecx
pop ecx
test eax, eax
jne 0x47c50e
xor ebx, 0x100
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], ebp
jmp 0x47c862
test cl, 0x40
je 0x47c862
cmp ebp, 0x22
jne 0x47c541
test bl, 0x40
jne 0x47c862
xor ebx, 0x80
jmp 0x47c862
cmp ebp, 0x27
jne 0x47c862
test bl, bl
js 0x47c862
xor ebx, 0x40
jmp 0x47c862
test ebx, ebx
je 0x47c825
test bl, 0x10
je 0x47c59d
cmp ebp, 0x3c
je 0x47c890
push ebp
push 0x5681f4
call fcn.005055aa
pop ecx
pop ecx
test eax, eax
jne 0x47c862
xor ebx, 0x10
mov dword [esp + 0x14], 0x568200
mov dword [esp + 0x18], 1
jmp 0x47c85b
test bl, 1
je 0x47c69a
xor eax, eax
inc eax
xor ebx, eax
cmp ebp, 0x60
ja 0x47c67e
cmp ebp, 0x40
jbe 0x47c5c2
cmp ebp, 0x5b
jb 0x47c67e
cmp ebp, 0x5f
je 0x47c67e
cmp ebp, 0x3a
je 0x47c67e
cmp ebp, 0x2f
jne 0x47c5fa
mov dword [esp + 0x18], eax
xor edi, edi
mov eax, dword [esp + 0x1c]
sub eax, dword [edx + 0xc]
sar eax, 1
mov dword [esp + 0x14], 0x568208
inc eax
mov dword [esp + 0x24], eax
jmp 0x47c85e
cmp ebp, 0x21
jne 0x47c607
or ebx, 2
jmp 0x47c862
cmp ebp, 0x3f
jne 0x47c631
mov eax, dword [esp + 0x1c]
sub eax, dword [edx + 0xc]
sar eax, 1
inc eax
mov dword [esp + 0x14], 0x56820c
mov dword [esp + 0x18], 2
push 0x10
mov dword [esp + 0x28], eax
jmp 0x47c85d
push esi
push 0x568218
mov dword [esp + 0x20], eax
lea eax, [esp + 0x104]
push 0x568240
push eax
mov dword [esp + 0x24], 0x568214
call fcn.005041f9
lea eax, [esp + 0x10c]
push eax
call fcn.00450bfe
add esp, 0x14
push eax
lea eax, [esp + 0x100]
push eax
lea ecx, [edi + 0x10]
call fcn.00450b91
or edi, 0xffffffff
jmp 0x47c85e
mov dword [esp + 0x18], eax
mov edi, eax
mov eax, dword [esp + 0x1c]
sub eax, dword [edx + 0xc]
mov dword [esp + 0x14], 0x568204
sar eax, 1
jmp 0x47c5f1
test bl, 2
je 0x47c73c
xor ebx, 2
cmp ebp, 0x2d
jne 0x47c6b3
or ebx, 4
jmp 0x47c862
cmp ebp, 0x5b
jne 0x47c6c5
test bl, 0x20
jne 0x47c6d7
or ebx, 8
jmp 0x47c862
cmp ebp, 0x44
jne 0x47c6d7
test bl, 0x20
jne 0x47c6d7
or ebx, 0x20
jmp 0x47c862
push ebp
push 0x568274
call fcn.005055aa
mov dword [esp + 0x20], 1
pop ecx
pop ecx
test eax, eax
je 0x47c6ff
mov dword [esp + 0x14], 0x56827c
push 0x40
jmp 0x47c85d
push esi
push 0x568284
lea eax, [esp + 0x294]
mov dword [esp + 0x1c], 0x568280
push 0x568290
push eax
call fcn.005041f9
lea eax, [esp + 0x29c]
push eax
call fcn.00450bfe
add esp, 0x14
push eax
lea eax, [esp + 0x290]
jmp 0x47c66d
test bl, 4
je 0x47c7a5
xor ebx, 4
cmp ebp, 0x2d
jne 0x47c760
mov dword [esp + 0x14], 0x5682c4
mov dword [esp + 0x18], 3
push 0x20
jmp 0x47c85d
push esi
push 0x5682d0
lea eax, [esp + 0x1cc]
mov dword [esp + 0x1c], 0x5682cc
push str.Incorrect__s_at_offset__d
push eax
mov dword [esp + 0x28], 1
call fcn.005041f9
lea eax, [esp + 0x1d4]
push eax
call fcn.00450bfe
add esp, 0x14
push eax
lea eax, [esp + 0x1c8]
jmp 0x47c66d
test bl, 8
je 0x47c804
xor ebx, 8
cmp ebp, 0x43
jne 0x47c7c9
mov dword [esp + 0x14], 0x56831c
mov dword [esp + 0x18], 3
push 8
jmp 0x47c85d
xor eax, eax
mov dword [esp + 0x14], 0x568324
push esi
inc eax
push 0x568328
mov dword [esp + 0x20], eax
lea eax, [esp + 0x3c]
push 0x568330
push eax
call fcn.005041f9
lea eax, [esp + 0x44]
push eax
call fcn.00450bfe
add esp, 0x14
push eax
lea eax, [esp + 0x38]
jmp 0x47c66d
test bl, 0x20
je 0x47c862
cmp ebp, 0x3c
jne 0x47c813
or ebx, 1
jmp 0x47c862
cmp ebp, 0x3e
jne 0x47c862
mov esi, dword [esp + 0x1c]
sub esi, dword [edx + 0xc]
sar esi, 1
push 0x40
jmp 0x47c89c
cmp ebp, 0x3c
jne 0x47c82f
xor ebx, ebx
inc ebx
jmp 0x47c862
push 4
pop edi
push ebp
push str.__t_n_r
mov dword [esp + 0x18], edi
call fcn.005055aa
pop ecx
pop ecx
test eax, eax
je 0x47c84c
push 0x10
pop ebx
jmp 0x47c862
xor eax, eax
mov dword [esp + 0x14], 0x568370
inc eax
mov dword [esp + 0x18], eax
push 2
pop edi
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
add edx, 2
mov dword [esp + 0x1c], edx
movzx ebp, word [edx]
mov edx, dword [esp + 0x28]
jmp 0x47c30d
mov esi, dword [esp + 0x1c]
sub esi, dword [edx + 0xc]
sar esi, 1
dec esi
jmp 0x47c43a
mov esi, dword [esp + 0x1c]
sub esi, dword [edx + 0xc]
sar esi, 1
dec esi
push 4
pop edi
jmp 0x47c43e
mov esi, dword [esp + 0x1c]
sub esi, dword [edx + 0xc]
sar esi, 1
dec esi
cmp ecx, 4
je 0x47c43a
cmp ecx, 2
je 0x47c43a
mov eax, 0x5680e0
test bl, 0x20
jne 0x47c908
cmp ecx, 0x40
je 0x47c908
cmp ecx, 1
jne 0x47c8d9
mov eax, str.Element_tag
jmp 0x47c90d
test ecx, ecx
jne 0x47c8e4
mov eax, str.Element_end_tag
jmp 0x47c90d
cmp ecx, 8
jne 0x47c8f0
mov eax, str.CDATA_Section
jmp 0x47c90d
cmp ecx, 0x10
jne 0x47c8fc
mov eax, str.Processing_instruction
jmp 0x47c90d
cmp ecx, 0x20
jne 0x47c90d
mov eax, str.Comment
jmp 0x47c90d
mov eax, str.Doctype
mov ebx, dword [esp + 0x20]
or edi, 0xffffffff
push dword [ebx + 4]
push eax
lea eax, [esp + 0x3c]
push str._s_at_offset__d_unterminated
push eax
call fcn.005041f9
lea eax, [esp + 0x44]
push eax
call fcn.00450bfe
add esp, 0x14
lea ecx, [ebx + 0x10]
push eax
lea eax, [esp + 0x38]
push eax
call fcn.00450b91
mov edx, dword [esp + 0x28]
jmp 0x47c442