Function at 0x513390
Capabilities:
Parse credit card information

Disassembly:
push esi
mov esi, ecx
xor al, al
cmp dword [esi + 0x40], 0xffff
je 0x5135d2
push edi
mov edi, dword [0x583434]
push ebx
lea ebx, [ebx]
mov ecx, dword [esi + 0x40]
cmp ecx, 0x7c
je 0x5135d0
xor ebx, ebx
cmp ecx, 0x29
jne 0x5133e2
cmp dword [esi + 0x10], ebx
jne 0x5135d0
mov eax, 0x10000000
test dword [esi + 0x44], eax
jne 0x5133e7
push 5
call edi
add esp, 4
jmp 0x5135ba
mov eax, 0x10000000
cmp ecx, 0x2e
jne 0x51348a
push 0x14
call fcn.00550566
add esp, 4
cmp eax, ebx
je 0x513416
mov dword [eax], 0x5a251c
mov dword [eax + 4], 5
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
jmp 0x513418
xor eax, eax
mov ecx, dword [esi + 0x1c]
mov dword [eax + 0x10], ecx
mov edx, dword [esi + 0x1c]
mov ecx, dword [edx + 0xc]
cmp ecx, ebx
je 0x513434
mov dword [eax + 0xc], ecx
mov ecx, dword [esi + 0x1c]
mov edx, dword [ecx + 0xc]
mov dword [edx + 0x10], eax
mov ecx, dword [esi + 0x1c]
mov dword [ecx + 0xc], eax
mov dword [esi + 0x1c], eax
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x51347e
cmp word [eax], 0x5c
jne 0x51347b
add eax, 2
cmp eax, ecx
je 0x513466
test byte [esi + 0x44], 8
jne 0x513466
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x513479
cmp ecx, 0x29
je 0x513479
test byte [esi + 0x44], 0x10
jne 0x51347b
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x513479
cmp ecx, 0x7d
jne 0x51347b
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0050ef10
jmp 0x5135ba
cmp ecx, 0x5c
jne 0x513535
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x5134d4
cmp word [eax], 0x5c
jne 0x5134d1
add eax, 2
cmp eax, ecx
je 0x5134bc
test byte [esi + 0x44], 8
jne 0x5134bc
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x5134cf
cmp ecx, 0x29
je 0x5134cf
test byte [esi + 0x44], 0x10
jne 0x5134d1
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x5134cf
cmp ecx, 0x7d
jne 0x5134d1
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0050ef10
mov eax, dword [esi + 0x44]
and eax, 0x80
je 0x513500
cmp word [esi + 0x3e], 0x62
jne 0x513500
lea ecx, [esi + 0x18]
call fcn.0050e200
mov ecx, esi
call fcn.0050f210
jmp 0x5135c1
cmp eax, ebx
je 0x513529
cmp word [esi + 0x3e], 0x42
jne 0x513529
lea ecx, [esi + 0x18]
call fcn.0050e200
mov eax, dword [esi + 0x1c]
xor dword [eax + 8], 1
add eax, 8
mov ecx, esi
call fcn.0050f210
jmp 0x5135c1
mov ecx, esi
call fcn.00512020
jmp 0x5135ba
cmp ecx, 0x5b
jne 0x513596
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x51357b
cmp word [eax], 0x5c
jne 0x513578
add eax, 2
cmp eax, ecx
je 0x513563
test byte [esi + 0x44], 8
jne 0x513563
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x513576
cmp ecx, 0x29
je 0x513576
test byte [esi + 0x44], 0x10
jne 0x513578
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x513576
cmp ecx, 0x7d
jne 0x513578
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0050ef10
mov ecx, esi
call fcn.00513170
push 4
push 0x5d
mov ecx, esi
call fcn.0050f510
jmp 0x5135ba
cmp ecx, 0x28
jne 0x5135d4
mov ecx, esi
call fcn.0050f210
mov ecx, esi
call fcn.0050f580
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.0050f510
test bl, bl
je 0x5135c1
mov ecx, esi
call fcn.005120e0
cmp dword [esi + 0x40], 0xffff
mov al, 1
jne 0x5133b0
pop ebx
pop edi
pop esi
ret
cmp ecx, 0x5e
jne 0x5135ea
lea ecx, [esi + 0x18]
call fcn.0050e140
mov ecx, esi
call fcn.0050f210
jmp 0x5135c1
cmp ecx, 0x24
jne 0x513600
lea ecx, [esi + 0x18]
call fcn.0050e1a0
mov ecx, esi
call fcn.0050f210
jmp 0x5135c1
cmp ecx, 0x2a
je 0x513653
cmp ecx, 0x2b
je 0x513653
cmp ecx, 0x3f
je 0x513653
cmp ecx, 0x7b
je 0x513653
cmp ecx, 0x7d
jne 0x513627
test dword [esi + 0x44], eax
jne 0x513627
push 6
call edi
add esp, 4
jmp 0x5135ba
cmp ecx, 0x5d
jne 0x51363a
test dword [esi + 0x44], eax
jne 0x51363a
push 4
call edi
add esp, 4
jmp 0x5135ba
movzx edx, word [esi + 0x3e]
lea ecx, [esi + 0x18]
push edx
call fcn.00511c60
mov ecx, esi
call fcn.0050f210
jmp 0x5135ba
push 0xa
call edi
add esp, 4
jmp 0x5135ba