Function at 0x4079c5
Capabilities:
Parse credit card information

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x34c
mov eax, dword [0x4de668]
xor eax, ebp
mov dword [ebp + 0x6c], eax
mov ecx, dword [ebp + 0x7c]
or dword [ebp - 0x2bc], 0xffffffff
push esi
xor esi, esi
push edi
mov edi, dword [ebp + 0x78]
mov eax, dword [edi + 8]
mov dword [ecx + 4], eax
mov dword [ecx + 0xc], esi
mov eax, dword [edi + 8]
mov edx, dword [edi + 0xc]
lea edx, [edx + eax*2]
mov dword [ebp - 0x2cc], eax
movzx eax, word [edx]
mov dword [ebp - 0x2d0], ecx
mov dword [ebp - 0x2b8], esi
mov dword [ebp - 0x2c0], esi
mov dword [ebp - 0x2c8], esi
mov dword [ebp - 0x2d4], esi
mov dword [ebp - 0x2d8], esi
mov dword [ebp - 0x2c4], edx
cmp ax, si
jne 0x407a42
push 0xfffffffffffffffe
mov dword [ecx + 8], esi
mov dword [ecx], esi
pop eax
jmp 0x4080b2
push ebx
movzx ebx, ax
test ebx, ebx
je 0x407d4c
test esi, esi
je 0x407aab
push ebx
push 0x473690
call fcn.0044db8a
pop ecx
pop ecx
test eax, eax
je 0x407d32
mov ecx, dword [edi + 0xc]
mov eax, dword [ebp - 0x2c4]
sub eax, ecx
sar eax, 1
sub eax, esi
cmp dword [ebp - 0x2bc], 0
jne 0x407a8a
lea eax, [eax + esi - 1]
mov dword [edi], esi
mov dword [edi + 4], eax
jmp 0x407a9d
push eax
lea eax, [ecx + esi*2]
mov ecx, dword [ebp - 0x2d0]
push eax
add ecx, 0x10
call fcn.00407583
xor esi, esi
mov dword [ebp - 0x2d8], esi
mov dword [ebp - 0x2d4], esi
mov edx, dword [ebp - 0x2c0]
test edx, edx
je 0x407cd9
cmp ebx, 0x3e
jne 0x407b89
test byte [ebp - 0x2b8], 0xc0
jne 0x407ba8
mov eax, dword [ebp - 0x2c4]
sub eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0x2c8]
sar eax, 1
mov dword [ebp - 0x2cc], eax
cmp ecx, 1
jne 0x407b31
and dword [ebp - 0x2c0], 0
cmp dword [ebp - 0x2bc], ecx
jne 0x407b77
cmp dword [ebp - 0x2d4], 0x2f
jne 0x407b77
cmp dword [ebp - 0x2d8], 0
je 0x407b22
push dword [ebp - 0x2d8]
push 0x473680
call fcn.0044db8a
pop ecx
pop ecx
test eax, eax
je 0x407b77
mov eax, dword [ebp - 0x2d0]
or dword [eax + 0xc], 0x10000
jmp 0x407b77
cmp eax, ecx
jle 0x407b6a
mov ebx, dword [ebp - 0x2c4]
lea eax, [ecx + ecx]
sub ebx, eax
lea eax, [ebx + 2]
mov dword [ebp - 0x2dc], ecx
sub edx, eax
dec dword [ebp - 0x2dc]
je 0x407b63
mov cx, word [eax]
mov bx, word [edx + eax]
inc eax
inc eax
cmp cx, bx
je 0x407b4b
jmp 0x407b6a
and dword [ebp - 0x2c0], 0
cmp dword [ebp - 0x2c0], 0
jne 0x407d32
test byte [ebp - 0x2b8], 0x20
je 0x408093
jmp 0x407d32
cmp ebx, 0x3c
jne 0x407ba8
cmp dword [ebp - 0x2bc], 2
je 0x40816c
cmp dword [ebp - 0x2bc], 0xffffffff
je 0x40816c
test byte [ebp - 0x2bc], 1
je 0x407c9b
test byte [ebp - 0x2b8], 0xc0
je 0x407c01
cmp ebx, 0x22
jne 0x407bdf
test byte [ebp - 0x2b8], 0x80
je 0x407c84
xor dword [ebp - 0x2b8], 0x80
jmp 0x407c84
cmp ebx, 0x27
jne 0x407c84
test byte [ebp - 0x2b8], 0x40
je 0x407c84
xor dword [ebp - 0x2b8], 0x40
jmp 0x407c84
cmp ebx, 0x22
jne 0x407c1e
test dword [ebp - 0x2b8], 0x100
je 0x407c84
xor dword [ebp - 0x2b8], 0x180
jmp 0x407c84
cmp ebx, 0x27
jne 0x407c3b
test dword [ebp - 0x2b8], 0x100
je 0x407c84
xor dword [ebp - 0x2b8], 0x140
jmp 0x407c84
cmp ebx, 0x3d
jne 0x407c5d
cmp dword [ebp - 0x2d4], ebx
je 0x407c5d
mov eax, 0x100
test dword [ebp - 0x2b8], eax
jne 0x407c5d
xor dword [ebp - 0x2b8], eax
jmp 0x407c84
test dword [ebp - 0x2b8], 0x100
je 0x407c84
push ebx
push 0x473468
call fcn.0044db8a
pop ecx
pop ecx
test eax, eax
jne 0x407c84
xor dword [ebp - 0x2b8], 0x100
mov eax, dword [ebp - 0x2d4]
mov dword [ebp - 0x2d8], eax
mov dword [ebp - 0x2d4], ebx
jmp 0x407d32
test byte [ebp - 0x2bc], 0x40
je 0x407d32
cmp ebx, 0x22
jne 0x407cc2
test byte [ebp - 0x2b8], 0x40
jne 0x407d32
xor dword [ebp - 0x2b8], 0x80
jmp 0x407d32
cmp ebx, 0x27
jne 0x407d32
test byte [ebp - 0x2b8], 0x80
jne 0x407d32
xor dword [ebp - 0x2b8], 0x40
jmp 0x407d32
cmp dword [ebp - 0x2b8], 0
je 0x4080c3
test byte [ebp - 0x2b8], 0x10
je 0x407da6
cmp ebx, 0x3c
je 0x40817d
push ebx
push 0x473468
call fcn.0044db8a
pop ecx
pop ecx
test eax, eax
jne 0x407d32
xor dword [ebp - 0x2b8], 0x10
mov dword [ebp - 0x2bc], 2
mov dword [ebp - 0x2c8], 1
mov dword [ebp - 0x2c0], 0x47367c
add dword [ebp - 0x2c4], 2
mov eax, dword [ebp - 0x2c4]
movzx ebx, word [eax]
test ebx, ebx
jne 0x407a4e
mov edx, eax
sub edx, dword [edi + 0xc]
sar edx, 1
dec edx
cmp dword [ebp - 0x2bc], 4
mov dword [ebp - 0x2cc], edx
je 0x408093
cmp dword [ebp - 0x2bc], 2
je 0x408093
test byte [ebp - 0x2b8], 0x20
mov ecx, 0x473674
jne 0x408134
mov eax, dword [ebp - 0x2bc]
cmp eax, 0x40
je 0x408134
cmp eax, 1
jne 0x408105
mov ecx, 0x47365c
jmp 0x408139
test byte [ebp - 0x2b8], 1
je 0x407ea9
xor eax, eax
inc eax
xor dword [ebp - 0x2b8], eax
cmp ebx, 0x60
ja 0x407e83
cmp ebx, 0x40
jbe 0x407dd3
cmp ebx, 0x5b
jb 0x407e83
cmp ebx, 0x5f
je 0x407e83
cmp ebx, 0x3a
je 0x407e83
cmp ebx, 0x2f
jne 0x407e03
and dword [ebp - 0x2bc], 0
mov dword [ebp - 0x2c0], 0x473658
mov dword [ebp - 0x2c8], eax
jmp 0x407e37
cmp ebx, 0x21
jne 0x407e14
or dword [ebp - 0x2b8], 2
jmp 0x407d32
cmp ebx, 0x3f
jne 0x407e48
mov dword [ebp - 0x2c0], 0x473650
mov dword [ebp - 0x2c8], 2
mov dword [ebp - 0x2bc], 0x10
mov esi, dword [ebp - 0x2c4]
sub esi, dword [edi + 0xc]
sar esi, 1
inc esi
jmp 0x407d32
push dword [ebp - 0x2cc]
lea eax, [ebp - 0x2b4]
push 0x473628
push 0x4735f4
push eax
mov dword [ebp - 0x2c0], 0x473658
mov dword [ebp - 0x2c8], 1
call fcn.0044e5c6
lea eax, [ebp - 0x2b4]
jmp 0x408033
mov esi, dword [ebp - 0x2c4]
sub esi, dword [edi + 0xc]
mov dword [ebp - 0x2c0], 0x473658
mov dword [ebp - 0x2c8], eax
mov dword [ebp - 0x2bc], eax
sar esi, 1
jmp 0x407d32
test byte [ebp - 0x2b8], 2
je 0x407f5d
xor dword [ebp - 0x2b8], 2
cmp ebx, 0x2d
jne 0x407ece
or dword [ebp - 0x2b8], 4
jmp 0x407d32
cmp ebx, 0x5b
jne 0x407ee8
test byte [ebp - 0x2b8], 0x20
jne 0x407f02
or dword [ebp - 0x2b8], 8
jmp 0x407d32
cmp ebx, 0x44
jne 0x407f02
test byte [ebp - 0x2b8], 0x20
jne 0x407f02
or dword [ebp - 0x2b8], 0x20
jmp 0x407d32
push ebx
push 0x4735ec
call fcn.0044db8a
pop ecx
pop ecx
mov dword [ebp - 0x2c0], 0x473658
mov dword [ebp - 0x2c8], 1
test eax, eax
je 0x407f36
mov dword [ebp - 0x2bc], 0x40
jmp 0x407d32
push dword [ebp - 0x2cc]
lea eax, [ebp - 0x1ec]
push 0x4735e0
push 0x4735f4
push eax
call fcn.0044e5c6
lea eax, [ebp - 0x1ec]
jmp 0x408033
test byte [ebp - 0x2b8], 4
je 0x407fcd
xor dword [ebp - 0x2b8], 4
cmp ebx, 0x2d
jne 0x407f95
mov dword [ebp - 0x2c0], 0x4735d8
mov dword [ebp - 0x2c8], 3
mov dword [ebp - 0x2bc], 0x20
jmp 0x407d32
push dword [ebp - 0x2cc]
lea eax, [ebp - 0x124]
push 0x4735c0
push 0x4735f4
push eax
mov dword [ebp - 0x2c0], 0x473658
mov dword [ebp - 0x2c8], 1
call fcn.0044e5c6
lea eax, [ebp - 0x124]
jmp 0x408033
test byte [ebp - 0x2b8], 8
je 0x408051
push 8
pop eax
xor dword [ebp - 0x2b8], eax
cmp ebx, 0x43
jne 0x408003
mov dword [ebp - 0x2c0], 0x4735b8
mov dword [ebp - 0x2c8], 3
mov dword [ebp - 0x2bc], eax
jmp 0x407d32
push dword [ebp - 0x2cc]
lea eax, [ebp - 0x5c]
push 0x473674
push 0x4735f4
push eax
mov dword [ebp - 0x2c0], 0x473658
mov dword [ebp - 0x2c8], 1
call fcn.0044e5c6
lea eax, [ebp - 0x5c]
mov ecx, dword [ebp - 0x2d0]
add esp, 0x10
push eax
add ecx, 0x10
call fcn.00407621
or dword [ebp - 0x2bc], 0xffffffff
jmp 0x407d32
test byte [ebp - 0x2b8], 0x20
je 0x407d32
cmp ebx, 0x3c
jne 0x40806f
or dword [ebp - 0x2b8], 1
jmp 0x407d32
cmp ebx, 0x3e
jne 0x407d32
mov eax, dword [ebp - 0x2c4]
sub eax, dword [edi + 0xc]
mov dword [ebp - 0x2bc], 0x40
sar eax, 1
mov dword [ebp - 0x2cc], eax
mov eax, dword [ebp - 0x2cc]
mov ecx, dword [ebp - 0x2d0]
inc eax
mov dword [edi + 8], eax
sub eax, dword [ecx + 4]
pop ebx
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x2bc]
mov dword [ecx], eax
mov ecx, dword [ebp + 0x6c]
pop edi
xor ecx, ebp
pop esi
call fcn.0044d52b
add ebp, 0x70
leave
ret
cmp ebx, 0x3c
jne 0x4080d7
mov dword [ebp - 0x2b8], 1
jmp 0x407d32
push ebx
push 0x473468
mov dword [ebp - 0x2bc], 4
call fcn.0044db8a
pop ecx
pop ecx
test eax, eax
je 0x407d14
mov dword [ebp - 0x2b8], 0x10
jmp 0x407d32
test eax, eax
jne 0x408110
mov ecx, 0x473598
jmp 0x408139
cmp eax, 8
jne 0x40811c
mov ecx, 0x47357c
jmp 0x408139
cmp eax, 0x10
jne 0x408128
mov ecx, 0x47354c
jmp 0x408139
cmp eax, 0x20
jne 0x408139
mov ecx, 0x47353c
jmp 0x408139
mov ecx, 0x47352c
mov esi, dword [ebp - 0x2d0]
push dword [esi + 4]
or dword [ebp - 0x2bc], 0xffffffff
push ecx
lea eax, [ebp - 0x5c]
push 0x4734f0
push eax
call fcn.0044e5c6
add esp, 0x10
lea eax, [ebp - 0x5c]
push eax
lea ecx, [esi + 0x10]
call fcn.00407621
jmp 0x408093
mov eax, dword [ebp - 0x2c4]
sub eax, dword [edi + 0xc]
sar eax, 1
dec eax
jmp 0x40808d
mov eax, dword [ebp - 0x2c4]
sub eax, dword [edi + 0xc]
mov dword [ebp - 0x2bc], 4
sar eax, 1
dec eax
jmp 0x40808d