Function at 0x4088b0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x408dda
lea edi, [esi + 8]
nop word [eax + eax]
cmp eax, 0x7c
je 0x408dda
cmp eax, 0x29
jne 0x4088fa
cmp dword [esi + 0x10], 0
jne 0x408dda
test dword [esi + 0x50], 0x10000000
je 0x408dea
jmp 0x408d6b
cmp eax, 0x2e
jne 0x408970
push 5
lea ecx, [esi + 0x24]
call fcn.00408e00
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x408dbb
cmp word [eax], 0x5c
jne 0x408b86
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x408964
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x408941
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x408957
cmp ecx, 0x29
je 0x408957
mov ecx, eax
test bl, 0x10
jne 0x408964
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x408957
mov edx, ecx
cmp edi, 0x7d
jne 0x408964
lea eax, [edx + 2]
add eax, 2
mov dword [esi], eax
jmp 0x408dbb
mov eax, ecx
add eax, 2
mov dword [esi], eax
jmp 0x408dbb
cmp eax, 0x5c
jne 0x408ad5
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4089ca
cmp word [eax], 0x5c
jne 0x4089c5
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x4089c3
test byte [esi + 0x50], 8
jne 0x4089a7
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x4089be
cmp ecx, 0x29
je 0x4089be
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x4089c3
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x4089be
mov edx, ecx
cmp ebx, 0x7d
jne 0x4089c3
lea eax, [edx + 2]
jmp 0x4089c5
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004077f0
test byte [esi + 0x50], 0x80
je 0x408ac9
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x408a5c
push 4
lea ecx, [esi + 0x24]
call fcn.00408e00
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x408a50
cmp word [eax], 0x5c
jne 0x408a4b
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x408a49
test byte [esi + 0x50], 8
jne 0x408a1e
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x408a35
cmp ecx, 0x29
je 0x408a35
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x408a49
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x408a35
mov edx, ecx
cmp ebx, 0x7d
jne 0x408a49
lea eax, [edx + 2]
mov ecx, esi
add eax, 2
mov dword [esi], eax
call fcn.004077f0
jmp 0x408dcc
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004077f0
jmp 0x408dcc
cmp ecx, 0x42
jne 0x408ac9
push 4
lea ecx, [esi + 0x24]
call fcn.00408e00
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x408abd
cmp word [eax], 0x5c
jne 0x408ab8
lea ebx, [eax + 2]
cmp ebx, ecx
je 0x408ab8
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x408aa1
movzx edx, word [ebx]
mov ecx, eax
cmp edx, 0x28
je 0x408ab5
cmp edx, 0x29
je 0x408ab5
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x408ab8
movzx edx, word [ebx]
mov ecx, eax
cmp edx, 0x7b
je 0x408ab5
cmp edx, 0x7d
jne 0x408ab8
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004077f0
jmp 0x408dcc
mov ecx, esi
call fcn.00409d70
jmp 0x408dc2
cmp eax, 0x5b
jne 0x408b90
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x408b26
cmp word [eax], 0x5c
jne 0x408b21
lea edx, [eax + 2]
cmp edx, ecx
je 0x408b21
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x408b0a
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x408b1e
cmp edi, 0x29
je 0x408b1e
test bl, 0x10
jne 0x408b21
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x408b1e
cmp edx, 0x7d
jne 0x408b21
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004077f0
mov ecx, esi
call fcn.00409c10
cmp dword [esi + 0x4c], 0x5d
jne 0x408df8
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x408dbb
cmp word [eax], 0x5c
jne 0x408b86
lea edx, [eax + 2]
cmp edx, ecx
je 0x408b86
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x408b6f
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x408b83
cmp edi, 0x29
je 0x408b83
test bl, 0x10
jne 0x408b86
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x408b83
cmp edx, 0x7d
jne 0x408b86
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
jmp 0x408dbb
cmp eax, 0x28
jne 0x408c61
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x408be4
cmp word [eax], 0x5c
jne 0x408bdf
lea edx, [eax + 2]
cmp edx, ecx
je 0x408bdf
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x408bc8
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x408bdc
cmp ebx, 0x29
je 0x408bdc
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x408bdf
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x408bdc
cmp edx, 0x7d
jne 0x408bdf
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004077f0
mov ecx, esi
call fcn.00409ed0
cmp dword [esi + 0x4c], 0x29
mov byte [ebp - 1], al
jne 0x408dea
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x408c4b
cmp word [eax], 0x5c
jne 0x408c46
lea edx, [eax + 2]
cmp edx, ecx
je 0x408c46
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x408c2f
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x408c43
cmp ebx, 0x29
je 0x408c43
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x408c46
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x408c43
cmp edx, 0x7d
jne 0x408c46
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004077f0
cmp byte [ebp - 1], 0
je 0x408dcc
jmp 0x408dc2
cmp eax, 0x5e
jne 0x408cc1
push 2
lea ecx, [esi + 0x24]
call fcn.00408e00
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x408cb5
cmp word [eax], 0x5c
jne 0x408cb2
add eax, 2
cmp eax, ecx
je 0x408cb2
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x408c9d
movzx edx, word [eax]
cmp edx, 0x28
je 0x408caf
cmp edx, 0x29
je 0x408caf
test cl, 0x10
jne 0x408cb2
movzx eax, word [eax]
cmp eax, 0x7b
je 0x408caf
cmp eax, 0x7d
jne 0x408cb2
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.004077f0
jmp 0x408dcc
cmp eax, 0x24
jne 0x408d21
push 3
lea ecx, [esi + 0x24]
call fcn.00408e00
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x408d15
cmp word [eax], 0x5c
jne 0x408d12
add eax, 2
cmp eax, ecx
je 0x408d12
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x408cfd
movzx edx, word [eax]
cmp edx, 0x28
je 0x408d0f
cmp edx, 0x29
je 0x408d0f
test cl, 0x10
jne 0x408d12
movzx eax, word [eax]
cmp eax, 0x7b
je 0x408d0f
cmp eax, 0x7d
jne 0x408d12
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.004077f0
jmp 0x408dcc
cmp eax, 0x2a
je 0x408de3
cmp eax, 0x2b
je 0x408de3
cmp eax, 0x3f
je 0x408de3
cmp eax, 0x7b
je 0x408de3
cmp eax, 0x7d
jne 0x408d59
test dword [esi + 0x50], 0x10000000
je 0x408df1
jmp 0x408d6b
cmp eax, 0x5d
jne 0x408d6b
test dword [esi + 0x50], 0x10000000
je 0x408df8
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0040a290
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x408dbb
cmp word [eax], 0x5c
jne 0x408db8
add eax, 2
cmp eax, ecx
je 0x408db8
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x408da3
movzx edx, word [eax]
cmp edx, 0x28
je 0x408db5
cmp edx, 0x29
je 0x408db5
test cl, 0x10
jne 0x408db8
movzx eax, word [eax]
cmp eax, 0x7b
je 0x408db5
cmp eax, 0x7d
jne 0x408db8
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.004077f0
mov ecx, esi
call fcn.0040a060
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x4088d0
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.004077e0
push 5
call fcn.004077e0
push 6
call fcn.004077e0
push 4
call fcn.004077e0
int3