Function at 0x40ab10
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, edx
mov dword [ebp - 4], 0
mov dword [ebp - 0x18], eax
mov edx, 0x20
push ebx
push esi
mov dword [eax], 0
mov eax, dword [ebp + 8]
push edi
mov edi, ecx
mov dword [ebp - 8], edx
mov dword [eax], 0
xor eax, eax
mov dword [ebp - 0x10], eax
movzx eax, word [edi]
test ax, ax
je 0x40b117
mov esi, dword [ebp + 0xc]
mov ecx, eax
mov dword [ebp - 0xc], ecx
push ecx
call fcn.004216bb
movzx ebx, ax
add esp, 4
mov eax, dword [ebp - 8]
cmp ax, 0x2f
jne 0x40ad75
movzx eax, word [edi]
push 8
push eax
call fcn.0041f340
add esp, 8
test eax, eax
je 0x40ab98
movzx eax, word [edi + 2]
add edi, 2
push 8
push eax
call fcn.0041f340
add esp, 8
test eax, eax
jne 0x40ab82
movzx eax, word [edi]
xor ecx, ecx
cmp eax, 0x2d
mov ebx, eax
mov eax, 2
cmove ecx, eax
movzx eax, word [edi + ecx]
add edi, ecx
mov ecx, eax
push eax
mov dword [ebp - 0x14], ecx
call fcn.004216bb
movzx eax, ax
add esp, 4
cmp eax, 0x41
je 0x40acdc
cmp eax, 0x54
je 0x40acdc
cmp eax, 0x4f
je 0x40acdc
cmp eax, 0x4c
jne 0x40abf1
xor eax, eax
cmp ebx, 0x2d
setne al
mov dword [esi + 0x10], eax
jmp 0x40ad45
cmp eax, 0x42
jne 0x40ac05
xor eax, eax
cmp ebx, 0x2d
setne al
mov dword [esi], eax
jmp 0x40ad45
cmp eax, 0x43
jne 0x40ac1a
xor eax, eax
cmp ebx, 0x2d
setne al
mov dword [esi + 4], eax
jmp 0x40ad45
cmp eax, 0x57
jne 0x40ac2f
xor eax, eax
cmp ebx, 0x2d
setne al
mov dword [esi + 8], eax
jmp 0x40ad45
cmp eax, 0x44
jne 0x40ac44
xor eax, eax
cmp ebx, 0x2d
setne al
mov dword [esi + 0xc], eax
jmp 0x40ad45
cmp eax, 0x4e
jne 0x40ac59
xor eax, eax
cmp ebx, 0x2d
setne al
mov dword [esi + 0x14], eax
jmp 0x40ad45
cmp eax, 0x50
jne 0x40ac6e
xor eax, eax
cmp ebx, 0x2d
setne al
mov dword [esi + 0x18], eax
jmp 0x40ad45
cmp eax, 0x51
jne 0x40ac83
xor eax, eax
cmp ebx, 0x2d
setne al
mov dword [esi + 0x1c], eax
jmp 0x40ad45
cmp eax, 0x53
jne 0x40ac98
xor eax, eax
cmp ebx, 0x2d
setne al
mov dword [esi + 0x20], eax
jmp 0x40ad45
cmp eax, 0x58
jne 0x40acad
xor eax, eax
cmp ebx, 0x2d
setne al
mov dword [esi + 0x24], eax
jmp 0x40ad45
cmp eax, 0x52
jne 0x40acc2
xor eax, eax
cmp ebx, 0x2d
setne al
mov dword [esi + 0x2c], eax
jmp 0x40ad45
mov eax, dword [ebp - 0x14]
cmp ax, 0x34
jne 0x40b123
xor eax, eax
cmp ebx, 0x2d
setne al
mov dword [esi + 0x28], eax
jmp 0x40ad45
mov ecx, eax
cmp ecx, 0x41
je 0x40ad2b
cmp ecx, 0x4f
je 0x40acfb
cmp ecx, 0x54
jne 0x40ad0c
cmp ebx, 0x2d
jne 0x40ad11
mov dword [esi + 0x54], 1
jmp 0x40ad45
xor ecx, ecx
cmp ebx, 0x2d
setne cl
mov dword [ebp - 0x10], ecx
xor ecx, ecx
mov word [esi + 0x50], cx
cmp ebx, 0x2d
je 0x40ad45
add edi, 2
mov edx, eax
mov dword [ebp - 8], edx
cmp word [edi], 0x3a
jne 0x40b0df
add edi, 2
jmp 0x40b0df
mov dword [esi + 0x30], 0
mov dword [esi + 0x34], 0
cmp ebx, 0x2d
jne 0x40ad11
mov dword [esi + 0x34], 6
movzx eax, word [edi + 2]
test ax, ax
je 0x40ad66
cmp eax, 0x2f
je 0x40ad66
push 8
push eax
call fcn.0041f340
add esp, 8
test eax, eax
je 0x40b198
mov dword [ebp - 8], 0x20
add edi, 2
jmp 0x40b0df
cmp ax, 0x20
mov eax, dword [ebp - 0xc]
jne 0x40ae7e
cmp ax, 0x2f
jne 0x40ad97
mov dword [ebp - 8], 0x2f
add edi, 2
jmp 0x40b0df
push 8
push eax
call fcn.0041f340
add esp, 8
test eax, eax
jne 0x40b0d2
movzx eax, word [edi]
mov ecx, edi
xor ebx, ebx
mov dword [ebp - 0x14], ecx
test ax, ax
je 0x40adf2
nop dword [eax]
test ebx, ebx
jne 0x40add9
cmp ax, 0x2f
je 0x40adef
push 8
push eax
call fcn.0041f340
add esp, 8
test eax, eax
jne 0x40adef
xor eax, eax
cmp word [edi], 0x22
sete al
add edi, 2
xor ebx, eax
movzx eax, word [edi]
test ax, ax
jne 0x40adc0
mov ecx, dword [ebp - 0x14]
mov ebx, edi
sub ebx, ecx
and ebx, 0xfffffffe
lea eax, [ebx + 2]
push eax
call fcn.0041f424
add esp, 4
mov dword [ebp - 0xc], eax
test eax, eax
je 0x40b1f1
push ebx
push dword [ebp - 0x14]
push eax
call fcn.0041ec00
mov eax, dword [ebp - 0xc]
xor ecx, ecx
add esp, 0xc
mov edx, eax
mov word [ebx + eax], cx
mov ebx, eax
movzx ecx, word [eax]
test cx, cx
je 0x40ae4f
cmp cx, 0x22
je 0x40ae3e
mov word [edx], cx
add edx, 2
movzx eax, word [ebx + 2]
add ebx, 2
mov ecx, eax
test ax, ax
jne 0x40ae32
mov eax, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x18]
xor ecx, ecx
mov word [edx], cx
mov edx, ebx
mov ecx, dword [ebp + 8]
push eax
call fcn.00411d50
add esp, 4
test eax, eax
mov eax, dword [ebp - 0xc]
push eax
je 0x40b1bf
call fcn.0041f3e5
add esp, 4
jmp 0x40b0df
cmp ax, 0x2f
je 0x40b0d7
push 8
push eax
call fcn.0041f340
add esp, 8
test eax, eax
jne 0x40b0d7
mov ecx, dword [ebp - 8]
movzx eax, cx
cmp eax, 0x41
je 0x40b01a
cmp eax, 0x4f
je 0x40aef3
cmp cx, 0x54
jne 0x40aee1
cmp ebx, 0x43
jne 0x40aec3
mov dword [esi + 0x54], 0
jmp 0x40aee1
cmp ebx, 0x41
jne 0x40aed1
mov dword [esi + 0x54], 2
jmp 0x40aee1
cmp ebx, 0x57
jne 0x40b1fa
mov dword [esi + 0x54], 1
mov eax, dword [ebp - 0xc]
cmp ax, 0x2d
je 0x40b0d2
jmp 0x40b092
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], 0
cmp ax, 0x2d
jne 0x40af12
mov dword [ebp - 4], 1
add edi, 2
jmp 0x40b0df
cmp ebx, 0x4e
jne 0x40af46
movzx eax, word [esi + 0x50]
mov ecx, eax
cmp ax, 3
jge 0x40af2b
inc eax
mov word [esi + 0x50], ax
movzx ecx, ax
mov edx, dword [ebp - 4]
movsx eax, cx
mov dword [esi + eax*4 + 0x40], edx
movsx eax, word [esi + 0x50]
mov dword [esi + eax*4 + 0x34], 0
jmp 0x40b092
cmp ebx, 0x53
jne 0x40af7a
movzx eax, word [esi + 0x50]
mov ecx, eax
cmp ax, 3
jge 0x40af5f
inc eax
mov word [esi + 0x50], ax
movzx ecx, ax
mov edx, dword [ebp - 4]
movsx eax, cx
mov dword [esi + eax*4 + 0x40], edx
movsx eax, word [esi + 0x50]
mov dword [esi + eax*4 + 0x34], 1
jmp 0x40b092
cmp ebx, 0x47
jne 0x40afae
movzx eax, word [esi + 0x50]
mov ecx, eax
cmp ax, 3
jge 0x40af93
inc eax
mov word [esi + 0x50], ax
movzx ecx, ax
mov edx, dword [ebp - 4]
movsx eax, cx
mov dword [esi + eax*4 + 0x40], edx
movsx eax, word [esi + 0x50]
mov dword [esi + eax*4 + 0x34], 2
jmp 0x40b092
cmp ebx, 0x45
jne 0x40afe2
movzx eax, word [esi + 0x50]
mov ecx, eax
cmp ax, 3
jge 0x40afc7
inc eax
mov word [esi + 0x50], ax
movzx ecx, ax
mov edx, dword [ebp - 4]
movsx eax, cx
mov dword [esi + eax*4 + 0x40], edx
movsx eax, word [esi + 0x50]
mov dword [esi + eax*4 + 0x34], 3
jmp 0x40b092
cmp ebx, 0x44
jne 0x40b1fa
movzx eax, word [esi + 0x50]
mov ecx, eax
cmp ax, 3
jge 0x40afff
inc eax
mov word [esi + 0x50], ax
movzx ecx, ax
mov edx, dword [ebp - 4]
movsx eax, cx
mov dword [esi + eax*4 + 0x40], edx
movsx eax, word [esi + 0x50]
mov dword [esi + eax*4 + 0x34], 4
jmp 0x40b092
mov eax, dword [ebp - 0xc]
cmp ax, 0x2d
jne 0x40b032
mov dword [ebp - 4], 1
add edi, 2
jmp 0x40b0df
cmp ebx, 0x44
jne 0x40b048
mov ecx, dword [esi + 0x30]
mov eax, ecx
or dword [esi + 0x34], 0x10
or eax, 0x10
and ecx, 0xffffffef
jmp 0x40b088
cmp ebx, 0x52
jne 0x40b05e
mov ecx, dword [esi + 0x30]
mov eax, ecx
or dword [esi + 0x34], 1
or eax, 1
and ecx, 0xfffffffe
jmp 0x40b088
cmp ebx, 0x48
jne 0x40b074
mov ecx, dword [esi + 0x30]
mov eax, ecx
or dword [esi + 0x34], 2
or eax, 2
and ecx, 0xfffffffd
jmp 0x40b088
cmp ebx, 0x41
jne 0x40b0a4
mov ecx, dword [esi + 0x30]
mov eax, ecx
or dword [esi + 0x34], 0x20
or eax, 0x20
and ecx, 0xffffffdf
cmp dword [ebp - 4], 0
cmove ecx, eax
mov dword [esi + 0x30], ecx
cmp dword [ebp - 4], 0
je 0x40b0d2
mov dword [ebp - 4], 0
add edi, 2
jmp 0x40b0df
cmp ebx, 0x53
jne 0x40b1fa
or dword [esi + 0x34], 4
cmp dword [ebp - 4], 0
mov eax, dword [esi + 0x30]
je 0x40b0cc
and eax, 0xfffffffb
mov dword [ebp - 4], 0
mov dword [esi + 0x30], eax
add edi, 2
jmp 0x40b0df
or eax, 4
mov dword [esi + 0x30], eax
add edi, 2
jmp 0x40b0df
mov edx, 0x20
mov dword [ebp - 8], edx
movzx eax, word [edi]
mov ecx, eax
mov dword [ebp - 0xc], ecx
test ax, ax
jne 0x40ab57
cmp dword [ebp - 0x10], 0
je 0x40b117
mov eax, 2
mov dword [esi + 0x44], 0
mov word [esi + 0x50], ax
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], 0
mov dword [esi + 0x48], 0
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
cmp ax, 0x3f
jne 0x40b169
push 0
lea eax, [ebp + 8]
mov dword [ebp + 8], 0
push eax
push ecx
mov edx, 0x27d
call fcn.0041d0b0
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x40b1f1
test eax, eax
je 0x40b1f1
push eax
push ecx
push 1
call fcn.0041ce60
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, word [edi]
push eax
call fcn.004216bb
movzx eax, ax
push eax
push 0x65
push 0x44a020
call fcn.0041cd80
add esp, 0x10
mov dword [0x43bbd4], 1
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, word [edi + 2]
push eax
push 0x64
push 0x44a020
call fcn.0041cd80
add esp, 0xc
mov dword [0x43bbd4], 1
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.0041f3e5
mov edi, dword [ebx]
add esp, 4
test edi, edi
je 0x40b1f1
mov eax, dword [edi]
mov esi, edi
test eax, eax
je 0x40b1e8
push eax
call fcn.0041f3e5
mov eax, dword [esi + 4]
lea esi, [esi + 4]
add esp, 4
test eax, eax
jne 0x40b1d5
push edi
call fcn.0041f3e5
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, word [edi]
push eax
call fcn.004216bb
movzx eax, ax
push eax
push 0x64
jmp 0x40b178