Function at 0x40ee70
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
push edi
mov edi, eax
xor al, al
cmp dword [edi + 0x40], 0xffff
je 0x40f0f4
mov ecx, dword [edi + 0x40]
cmp ecx, 0x7c
je 0x40f0f4
xor ebx, ebx
cmp ecx, 0x29
jne 0x40eeb9
cmp dword [edi + 0x10], ebx
jne 0x40f0f4
mov eax, 0x10000000
test dword [edi + 0x44], eax
jne 0x40eebe
push 5
call fcn.004846ea
add esp, 4
jmp 0x40f0de
mov eax, 0x10000000
cmp ecx, 0x2e
jne 0x40ef61
push 0x14
call fcn.00485951
add esp, 4
cmp eax, ebx
je 0x40eeed
mov dword [eax], 0x4c4a34
mov dword [eax + 4], 5
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
jmp 0x40eeef
xor eax, eax
mov ecx, dword [edi + 0x1c]
mov dword [eax + 0x10], ecx
mov edx, dword [edi + 0x1c]
mov ecx, dword [edx + 0xc]
cmp ecx, ebx
je 0x40ef0b
mov dword [eax + 0xc], ecx
mov ecx, dword [edi + 0x1c]
mov edx, dword [ecx + 0xc]
mov dword [edx + 0x10], eax
mov ecx, dword [edi + 0x1c]
mov dword [ecx + 0xc], eax
mov dword [edi + 0x1c], eax
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40ef55
cmp word [eax], 0x5c
jne 0x40ef52
add eax, 2
cmp eax, ecx
je 0x40ef3d
test byte [edi + 0x44], 8
jne 0x40ef3d
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40ef50
cmp ecx, 0x29
je 0x40ef50
test byte [edi + 0x44], 0x10
jne 0x40ef52
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40ef50
cmp ecx, 0x7d
jne 0x40ef52
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.0040e340
jmp 0x40f0de
cmp ecx, 0x5c
jne 0x40f009
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40efab
cmp word [eax], 0x5c
jne 0x40efa8
add eax, 2
cmp eax, ecx
je 0x40ef93
test byte [edi + 0x44], 8
jne 0x40ef93
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40efa6
cmp ecx, 0x29
je 0x40efa6
test byte [edi + 0x44], 0x10
jne 0x40efa8
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40efa6
cmp ecx, 0x7d
jne 0x40efa8
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.0040e340
mov eax, dword [edi + 0x44]
and eax, 0x80
je 0x40efd7
cmp word [edi + 0x3e], 0x62
jne 0x40efd7
lea esi, [edi + 0x18]
call fcn.00410120
mov eax, edi
call fcn.0040ee20
jmp 0x40f0e5
cmp eax, ebx
je 0x40effd
cmp word [edi + 0x3e], 0x42
jne 0x40effd
lea esi, [edi + 0x18]
call fcn.00410120
mov eax, dword [edi + 0x1c]
xor dword [eax + 8], 1
mov eax, edi
call fcn.0040ee20
jmp 0x40f0e5
mov eax, edi
call fcn.0040fdc0
jmp 0x40f0de
cmp ecx, 0x5b
jne 0x40f0b7
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40f053
cmp word [eax], 0x5c
jne 0x40f050
add eax, 2
cmp eax, ecx
je 0x40f03b
test byte [edi + 0x44], 8
jne 0x40f03b
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40f04e
cmp ecx, 0x29
je 0x40f04e
test byte [edi + 0x44], 0x10
jne 0x40f050
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40f04e
cmp ecx, 0x7d
jne 0x40f050
mov dword [edi], eax
add dword [edi], 2
mov esi, edi
call fcn.0040e340
call fcn.0040fd50
cmp dword [edi + 0x40], 0x5d
je 0x40f06f
push 4
call fcn.004846ea
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 8]
cmp eax, ecx
je 0x40f0b0
cmp word [eax], 0x5c
jne 0x40f0ad
add eax, 2
cmp eax, ecx
je 0x40f098
test byte [edi + 0x44], 8
jne 0x40f098
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40f0ab
cmp ecx, 0x29
je 0x40f0ab
test byte [edi + 0x44], 0x10
jne 0x40f0ad
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40f0ab
cmp ecx, 0x7d
jne 0x40f0ad
mov dword [edi], eax
add dword [edi], 2
call fcn.0040e340
jmp 0x40f0de
cmp ecx, 0x28
jne 0x40f0f8
mov eax, edi
call fcn.0040ee20
mov eax, edi
call fcn.0040fe90
mov bl, al
push 0x29
mov ecx, 5
mov eax, edi
call fcn.0040fce0
test bl, bl
je 0x40f0e5
mov eax, edi
call fcn.0040ff40
cmp dword [edi + 0x40], 0xffff
mov al, 1
jne 0x40ee84
pop edi
pop esi
pop ebx
ret
cmp ecx, 0x5e
jne 0x40f10e
lea esi, [edi + 0x18]
call fcn.00410080
mov eax, edi
call fcn.0040ee20
jmp 0x40f0e5
cmp ecx, 0x24
jne 0x40f124
lea esi, [edi + 0x18]
call fcn.004100d0
mov eax, edi
call fcn.0040ee20
jmp 0x40f0e5
cmp ecx, 0x2a
je 0x40f180
cmp ecx, 0x2b
je 0x40f180
cmp ecx, 0x3f
je 0x40f180
cmp ecx, 0x7b
je 0x40f180
cmp ecx, 0x7d
jne 0x40f14e
test dword [edi + 0x44], eax
jne 0x40f14e
push 6
call fcn.004846ea
add esp, 4
jmp 0x40f0de
cmp ecx, 0x5d
jne 0x40f167
test dword [edi + 0x44], eax
jne 0x40f167
push 4
call fcn.004846ea
add esp, 4
jmp 0x40f0de
movzx edx, word [edi + 0x3e]
lea eax, [edi + 0x18]
push edx
call fcn.00410170
mov eax, edi
call fcn.0040ee20
jmp 0x40f0de
push 0xa
call fcn.004846ea
add esp, 4
jmp 0x40f0de