Function at 0x4399cc
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [edi + 0x54]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
xor esi, esi
cmp word [eax], si
jne 0x4399f7
mov eax, 0x102
mov dword [edi + 0x58], eax
mov dword [ebp + 0xc], eax
push 0x47cdc0
lea eax, [ebp + 0xc]
push eax
call fcn.0045822a
mov ecx, edi
call fcn.00439e8c
call fcn.00439e2d
movzx ecx, ax
cmp cx, 0x3c
jne 0x439c8a
cmp dword [ebp + 8], esi
jne 0x439c82
mov eax, dword [edi + 0x54]
movzx ecx, word [eax]
cmp cx, 0x21
jne 0x439be4
mov dword [edi + 0x64], eax
mov eax, dword [edi + 0x4c]
mov dword [edi + 0x68], eax
mov eax, dword [edi + 0x44]
mov dword [edi + 0x6c], eax
mov eax, dword [edi + 0x48]
mov ecx, edi
mov dword [edi + 0x70], eax
call fcn.00439e2d
cmp ax, 0x21
jne 0x439ad4
call fcn.00439e2d
push 0x2d
pop esi
cmp ax, si
jne 0x439ad4
call fcn.00439e2d
cmp ax, si
jne 0x439ad4
mov ecx, edi
call fcn.00439e2d
movzx eax, ax
cmp ax, si
jne 0x439abc
mov eax, dword [edi + 0x54]
mov dword [edi + 0x64], eax
mov eax, dword [edi + 0x4c]
mov dword [edi + 0x68], eax
mov eax, dword [edi + 0x44]
mov dword [edi + 0x6c], eax
mov eax, dword [edi + 0x48]
mov dword [edi + 0x70], eax
call fcn.00439e2d
cmp ax, si
jne 0x439aa2
call fcn.00439e2d
cmp ax, 0x3e
je 0x439acb
mov eax, dword [edi + 0x64]
mov dword [edi + 0x54], eax
mov eax, dword [edi + 0x68]
mov dword [edi + 0x4c], eax
mov eax, dword [edi + 0x6c]
mov dword [edi + 0x44], eax
mov eax, dword [edi + 0x70]
mov dword [edi + 0x48], eax
jmp 0x439a66
test ax, ax
jne 0x439a66
mov eax, 0x10d
jmp 0x4399e3
push 8
pop eax
pop esi
pop ebx
pop ebp
ret 0xc
mov eax, dword [edi + 0x64]
mov dword [edi + 0x54], eax
mov eax, dword [edi + 0x68]
mov dword [edi + 0x4c], eax
mov eax, dword [edi + 0x6c]
mov dword [edi + 0x44], eax
mov eax, dword [edi + 0x70]
mov ecx, edi
mov dword [edi + 0x48], eax
call fcn.00439e2d
cmp ax, 0x21
jne 0x439bda
call fcn.00439e2d
cmp ax, 0x5b
jne 0x439bda
call fcn.00439e2d
cmp ax, 0x43
jne 0x439bda
call fcn.00439e2d
cmp ax, 0x44
jne 0x439bda
call fcn.00439e2d
cmp ax, 0x41
jne 0x439bda
call fcn.00439e2d
cmp ax, 0x54
jne 0x439bda
call fcn.00439e2d
cmp ax, 0x41
jne 0x439bda
call fcn.00439e2d
cmp ax, 0x5b
jne 0x439bda
mov esi, ebx
call fcn.004014f3
mov ecx, edi
call fcn.00439e2d
movzx esi, ax
cmp si, 0x5d
jne 0x439bc0
mov eax, dword [edi + 0x54]
mov dword [edi + 0x64], eax
mov eax, dword [edi + 0x4c]
mov dword [edi + 0x68], eax
mov eax, dword [edi + 0x44]
mov dword [edi + 0x6c], eax
mov eax, dword [edi + 0x48]
mov dword [edi + 0x70], eax
call fcn.00439e2d
cmp ax, si
jne 0x439ba6
call fcn.00439e2d
cmp ax, 0x3e
je 0x439bd3
mov eax, dword [edi + 0x64]
mov dword [edi + 0x54], eax
mov eax, dword [edi + 0x68]
mov dword [edi + 0x4c], eax
mov eax, dword [edi + 0x6c]
mov dword [edi + 0x44], eax
mov eax, dword [edi + 0x70]
mov dword [edi + 0x48], eax
jmp 0x439bc9
test si, si
je 0x439ac1
push esi
mov eax, ebx
call fcn.00401ff3
jmp 0x439b69
push 9
jmp 0x439acd
mov eax, 0x10f
jmp 0x4399e3
cmp cx, 0x3f
jne 0x439c82
mov ecx, edi
call fcn.00439e2d
mov esi, ebx
call fcn.004014f3
mov esi, dword [ebp + 0x10]
call fcn.004014f3
mov ecx, edi
call fcn.00439e2d
movzx ecx, ax
cmp cx, 0x20
je 0x439c1d
mov eax, ecx
call fcn.00439eae
jmp 0x439c20
xor eax, eax
inc eax
test eax, eax
jne 0x439c5a
cmp cx, 0x3f
jne 0x439c33
mov eax, dword [edi + 0x54]
cmp word [eax], 0x3e
je 0x439c42
test cx, cx
je 0x439c50
push ecx
mov eax, ebx
call fcn.00401ff3
jmp 0x439c04
mov ecx, edi
call fcn.00439e2d
push 0xa
jmp 0x439acd
mov eax, 0x110
jmp 0x4399e3
mov ecx, edi
call fcn.00439e2d
movzx eax, ax
cmp ax, 0x3f
jne 0x439c73
mov ecx, dword [edi + 0x54]
cmp word [ecx], 0x3e
je 0x439c42
test ax, ax
je 0x439c50
push eax
mov eax, esi
call fcn.00401ff3
jmp 0x439c5a
xor eax, eax
inc eax
jmp 0x439ace
cmp cx, 0x3e
jne 0x439c97
push 2
jmp 0x439acd
cmp cx, si
jne 0x439ca3
push 0xb
jmp 0x439acd
cmp dword [ebp + 8], esi
je 0x439de2
cmp cx, 0x2f
jne 0x439cb9
push 4
jmp 0x439acd
cmp cx, 0x22
je 0x439d54
cmp cx, 0x27
je 0x439d54
cmp cx, 0x3d
jne 0x439cda
push 3
jmp 0x439acd
cmp cx, 0x20
je 0x439ce9
mov eax, ecx
call fcn.00439eae
jmp 0x439cec
xor eax, eax
inc eax
cmp eax, esi
jne 0x439d4a
push ebx
mov eax, ecx
call fcn.004344b3
jmp 0x439d38
cmp ax, 0x3c
je 0x439d43
cmp ax, 0x3d
je 0x439d43
cmp ax, 0x3e
je 0x439d43
cmp ax, 0x2f
je 0x439d43
cmp ax, 0x20
je 0x439d1f
call fcn.00439eae
jmp 0x439d22
xor eax, eax
inc eax
cmp eax, esi
jne 0x439d43
mov ecx, edi
call fcn.00439e2d
movzx eax, ax
push eax
mov eax, ebx
call fcn.00401ff3
mov eax, dword [edi + 0x54]
movzx eax, word [eax]
cmp ax, si
jne 0x439cfa
push 5
jmp 0x439acd
mov eax, 0x201
jmp 0x4399e3
mov esi, dword [ebp + 0xc]
movzx ebx, cx
call fcn.004014f3
jmp 0x439d7e
cmp ax, 0x3c
je 0x439d89
mov ecx, edi
cmp ax, bx
je 0x439d93
call fcn.00439e2d
movzx eax, ax
push eax
mov eax, esi
call fcn.00401ff3
mov eax, dword [edi + 0x54]
movzx eax, word [eax]
test ax, ax
jne 0x439d61
mov eax, 0x202
jmp 0x4399e3
call fcn.00439e2d
mov eax, dword [edi + 0x54]
movzx ecx, word [eax]
cmp cx, 0x20
je 0x439dad
mov eax, ecx
call fcn.00439eae
jmp 0x439db0
xor eax, eax
inc eax
test eax, eax
jne 0x439dd0
cmp cx, 0x3e
je 0x439dd0
cmp cx, 0x2f
je 0x439dd0
cmp cx, 0x3f
je 0x439dd0
mov eax, 0x10c
jmp 0x4399e3
push 6
mov eax, dword [ebp + 0xc]
pop esi
call fcn.00439221
mov eax, esi
jmp 0x439ace
cmp cx, 0x20
je 0x439df1
mov eax, ecx
call fcn.00439eae
jmp 0x439df4
xor eax, eax
inc eax
cmp eax, esi
jne 0x439d4a
push ebx
mov eax, ecx
call fcn.004344b3
jmp 0x439e1e
cmp ax, 0x3c
je 0x439e29
mov ecx, edi
call fcn.00439e2d
movzx eax, ax
push eax
mov eax, ebx
call fcn.00401ff3
mov eax, dword [edi + 0x54]
movzx eax, word [eax]
cmp ax, si
jne 0x439e06
push 7
jmp 0x439dd2