Function at 0x4785ee
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x62b499
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
push esi
push edi
mov eax, dword [0x652018]
xor eax, esp
push eax
lea eax, [esp + 0x38]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x10], edi
mov esi, dword [ebp + 8]
test esi, esi
jne 0x47865c
lea ecx, [esp + 0x24]
call dword [0x660330]
mov dword [esp + 0x40], esi
mov dword [esp + 0x24], 0x40cc48
mov dword [esp + 0x30], 0x40cb40
mov dword [esp + 0x40], 0xffffffff
lea eax, [esp + 0x24]
push 0x651bb0
push eax
call 0x5a4c84
movzx eax, word [esi]
cmp ax, 0x4c
je 0x4786ca
cmp ax, 0x4a
je 0x4786ca
cmp ax, 0x4b
je 0x4786ca
cmp ax, 0x3c
je 0x4786ca
cmp ax, 0x39
je 0x4786ca
cmp ax, 0x37
je 0x4786ca
cmp ax, 0x38
je 0x4786ca
cmp ax, 0x3a
je 0x4786ca
cmp ax, 0x3b
je 0x4786ca
cmp ax, 0x3d
je 0x4786ca
cmp ax, 0x42
je 0x4786ca
cmp ax, 0x3e
je 0x4786ca
cmp ax, 0x3f
je 0x4786ca
push 0x40bbf0
lea ecx, [esp + 0x28]
call 0x3c4c2e
push 0x651bb0
lea eax, [esp + 0x28]
push eax
call 0x5a4c84
mov ebx, dword [esi + 0x24]
mov eax, dword [esi + 0x28]
push esi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], eax
call fcn.0047ef2e
cmp eax, 0x12
jne 0x4786ed
movsx ecx, word [esi]
call 0x585e4e
jmp 0x4786fe
cmp eax, 0xc
jne 0x47884f
movsx ecx, word [esi]
call 0x585cce
mov ecx, eax
test ecx, ecx
jne 0x47886c
push ebx
mov ecx, edi
call fcn.0047ef2e
push dword [esp + 0x18]
mov ecx, edi
mov ebx, eax
call fcn.0047ef2e
mov edi, dword [ebp + 0x10]
lea ecx, [esi + 4]
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x14]
push eax
push ecx
push eax
push ecx
push 0
push edi
push esi
push dword [esp + 0x30]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x30]
call fcn.0047f8ce
mov ecx, dword [esp + 0x20]
add esp, 4
push eax
push dword [esp + 0x24]
call fcn.0047d3fe
push eax
mov eax, dword [esp + 0x1c]
push ecx
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x1c]
call 0x3d1a0e
mov ecx, dword [esp + 0x20]
add esp, 4
movzx eax, al
push eax
push ebx
call fcn.0047d25e
mov ebx, eax
mov eax, dword [ebp + 0x14]
push eax
push dword [esp + 0x20]
push eax
push ecx
push 0
push edi
mov edi, dword [esp + 0x30]
push esi
mov esi, dword [esp + 0x2c]
mov ecx, esi
push edi
call fcn.0047f8ce
add esp, 4
mov ecx, esi
push eax
push edi
call fcn.0047d3fe
mov edx, dword [esi + 0xc]
push eax
push ecx
mov ecx, dword [edi + 0x1c]
call 0x3d1a0e
add esp, 4
movzx eax, al
mov ecx, esi
push eax
push dword [esp + 0x30]
call fcn.0047d25e
push dword [esp + 0x1c]
mov edi, dword [ebp + 8]
mov esi, eax
push dword [ebp + 0x14]
mov ecx, dword [esp + 0x18]
push edi
call fcn.0047de4e
movzx ecx, al
push ecx
push esi
movsx eax, word [edi]
push ebx
mov ebx, dword [esp + 0x24]
push eax
mov ecx, dword [ebx + 0x38]
call 0x58a17e
push dword [ebp + 0x14]
mov ecx, ebx
push eax
push edi
call fcn.0047d33e
mov ecx, dword [edi + 0x1c]
mov esi, eax
call 0x3c4c8e
test al, al
je 0x478838
mov ecx, dword [edi + 0x1c]
call 0x3c4cce
mov eax, dword [eax + 0x90]
shr eax, 0xd
test al, 1
je 0x478838
mov ecx, dword [ebx + 0x38]
lea eax, [edi + 4]
push eax
push dword [ebp + 0x14]
push dword [edi + 0x1c]
push esi
call 0x58876e
mov esi, eax
mov eax, esi
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
movsx eax, word [esi]
cmp eax, 0x3c
je 0x478867
cmp eax, 0x42
jne 0x478708
mov ecx, 0x11c
jmp 0x47886c
mov ecx, 0x10a
push dword [ebp + 0x14]
lea eax, [esi + 4]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [esp + 0x24]
push ebx
push eax
push ecx
push esi
mov ecx, edi
call fcn.0047e9ce
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10