Function at 0x4eab10
Capabilities:
Parse credit card information

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x30
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
cmp esi, ebx
je 0x4eacbd
movsx eax, byte [esi]
mov edi, ecx
cmp eax, 0x5b
jg 0x4eac72
cmp eax, 0x24
je 0x4eac97
cmp eax, 0x28
jne 0x4eacbd
lea eax, [esi + 1]
cmp eax, ebx
je 0x4eacbd
cmp byte [eax], 0x3f
jne 0x4eacbd
lea eax, [esi + 2]
cmp eax, ebx
je 0x4eacbd
movsx eax, byte [eax]
cmp eax, 0x21
je 0x4ead52
cmp eax, 0x3d
jne 0x4eacbd
mov ebp, esp
mov ecx, ebp
call fcn.00480970
mov eax, dword [0x539188]
mov ecx, ebp
push eax
call fcn.00481420
mov dword [esp + 4], eax
mov eax, dword [0x539194]
mov ecx, ebp
push eax
call fcn.00481420
mov dword [esp + 8], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
add esi, 3
mov ecx, ebp
mov eax, dword [edi + 0xc]
mov dword [esp + 0xc], eax
push ebx
push esi
call fcn.004ed9c0
mov esi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 0x28], eax
push 0x38
call fcn.00493b40
add esp, 4
mov ebp, eax
mov eax, dword [edi + 0x24]
lea ecx, [ebp + 8]
mov eax, dword [eax + 4]
mov dword [ebp + 4], eax
mov eax, esp
mov dword [ebp], 0x53c0fc
push eax
call fcn.004809f0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
movsd xmm0, qword [esp + 0xc]
movsd xmm1, qword [esp + 0x14]
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x1c]
mov dword [ebp + 0x10], ecx
movsd qword [ebp + 0x1c], xmm1
movsd qword [ebp + 0x14], xmm0
mov dword [ebp + 0x24], eax
mov eax, dword [esp + 0x20]
test eax, eax
mov dword [ebp + 0x28], eax
je 0x4eac5b
lock inc dword [eax + 4]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x30], ecx
mov byte [ebp + 0x34], 0
jmp 0x4eae44
cmp eax, 0x5c
je 0x4eacc9
cmp eax, 0x5e
jne 0x4eacbd
push 8
call fcn.00493b40
add esp, 4
mov ecx, dword [edi + 0x24]
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov dword [eax], 0x53bfbc
jmp 0x4eacb0
push 8
call fcn.00493b40
add esp, 4
mov ecx, dword [edi + 0x24]
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov dword [eax], 0x53bfd4
mov dword [ecx + 4], eax
inc esi
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 4]
mov dword [edi + 0x24], eax
mov eax, esi
add esp, 0x30
pop esi
pop edi
pop ebx
pop ebp
ret 8
lea eax, [esi + 1]
cmp eax, ebx
je 0x4eacbd
mov al, byte [eax]
cmp al, 0x42
je 0x4ead10
cmp al, 0x62
jne 0x4eacbd
push 0x18
call fcn.00493b40
add esp, 4
mov ebx, eax
mov eax, dword [edi + 0x24]
lea ecx, [ebx + 8]
mov eax, dword [eax + 4]
mov dword [ebx + 4], eax
mov dword [ebx], 0x53c3d8
push edi
call fcn.004809f0
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
mov dword [ebx + 0x10], ecx
mov dword [ebx + 0xc], eax
mov byte [ebx + 0x14], 0
jmp 0x4ead44
push 0x18
call fcn.00493b40
add esp, 4
mov ebx, eax
mov eax, dword [edi + 0x24]
lea ecx, [ebx + 8]
mov eax, dword [eax + 4]
mov dword [ebx + 4], eax
mov dword [ebx], 0x53c3d8
push edi
call fcn.004809f0
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
mov dword [ebx + 0x10], ecx
mov dword [ebx + 0xc], eax
mov byte [ebx + 0x14], 1
mov eax, dword [edi + 0x24]
add esi, 2
mov dword [eax + 4], ebx
jmp 0x4eacb4
mov ebp, esp
mov ecx, ebp
call fcn.00480970
mov eax, dword [0x539188]
mov ecx, ebp
push eax
call fcn.00481420
mov dword [esp + 4], eax
mov eax, dword [0x539194]
mov ecx, ebp
push eax
call fcn.00481420
mov dword [esp + 8], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
add esi, 3
mov ecx, ebp
mov eax, dword [edi + 0xc]
mov dword [esp + 0xc], eax
push ebx
push esi
call fcn.004ed9c0
mov esi, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 0x28], eax
push 0x38
call fcn.00493b40
add esp, 4
mov ebp, eax
mov eax, dword [edi + 0x24]
lea ecx, [ebp + 8]
mov eax, dword [eax + 4]
mov dword [ebp + 4], eax
mov eax, esp
mov dword [ebp], 0x53c0fc
push eax
call fcn.004809f0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
movsd xmm0, qword [esp + 0xc]
movsd xmm1, qword [esp + 0x14]
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x1c]
mov dword [ebp + 0x10], ecx
movsd qword [ebp + 0x1c], xmm1
movsd qword [ebp + 0x14], xmm0
mov dword [ebp + 0x24], eax
mov eax, dword [esp + 0x20]
test eax, eax
mov dword [ebp + 0x28], eax
je 0x4eae32
lock inc dword [eax + 4]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x30], ecx
mov byte [ebp + 0x34], 1
mov eax, dword [edi + 0x24]
mov dword [eax + 4], ebp
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 4]
mov dword [edi + 0x24], eax
mov eax, dword [esp + 0x2c]
add dword [edi + 0x10], eax
cmp esi, ebx
je 0x4eae94
cmp byte [esi], 0x29
jne 0x4eae94
mov edi, dword [esp + 0x20]
test edi, edi
je 0x4eae87
mov eax, 0xffffffff
lock xadd dword [edi + 4], eax
test eax, eax
jne 0x4eae87
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 8]
mov ecx, edi
call fcn.00492ab0
mov ecx, esp
inc esi
call fcn.00480a00
jmp 0x4eacbd
call fcn.005049c0
nop
nop
nop
nop