Function at 0x406d8b
Capabilities:
Parse credit card information

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x34c
mov eax, dword [0x4fb448]
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 0x406e08
push 0xfffffffffffffffe
mov dword [ecx + 8], esi
mov dword [ecx], esi
pop eax
jmp 0x407478
push ebx
movzx ebx, ax
test ebx, ebx
je 0x407112
test esi, esi
je 0x406e71
push ebx
push 0x47699c
call fcn.0044f69a
pop ecx
pop ecx
test eax, eax
je 0x4070f8
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 0x406e50
lea eax, [eax + esi - 1]
mov dword [edi], esi
mov dword [edi + 4], eax
jmp 0x406e63
push eax
lea eax, [ecx + esi*2]
mov ecx, dword [ebp - 0x2d0]
push eax
add ecx, 0x10
call fcn.00406982
xor esi, esi
mov dword [ebp - 0x2d8], esi
mov dword [ebp - 0x2d4], esi
mov edx, dword [ebp - 0x2c0]
test edx, edx
je 0x40709f
cmp ebx, 0x3e
jne 0x406f4f
test byte [ebp - 0x2b8], 0xc0
jne 0x406f6e
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 0x406ef7
and dword [ebp - 0x2c0], 0
cmp dword [ebp - 0x2bc], ecx
jne 0x406f3d
cmp dword [ebp - 0x2d4], 0x2f
jne 0x406f3d
cmp dword [ebp - 0x2d8], 0
je 0x406ee8
push dword [ebp - 0x2d8]
push 0x47698c
call fcn.0044f69a
pop ecx
pop ecx
test eax, eax
je 0x406f3d
mov eax, dword [ebp - 0x2d0]
or dword [eax + 0xc], 0x10000
jmp 0x406f3d
cmp eax, ecx
jle 0x406f30
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 0x406f29
mov cx, word [eax]
mov bx, word [edx + eax]
inc eax
inc eax
cmp cx, bx
je 0x406f11
jmp 0x406f30
and dword [ebp - 0x2c0], 0
cmp dword [ebp - 0x2c0], 0
jne 0x4070f8
test byte [ebp - 0x2b8], 0x20
je 0x407459
jmp 0x4070f8
cmp ebx, 0x3c
jne 0x406f6e
cmp dword [ebp - 0x2bc], 2
je 0x407532
cmp dword [ebp - 0x2bc], 0xffffffff
je 0x407532
test byte [ebp - 0x2bc], 1
je 0x407061
test byte [ebp - 0x2b8], 0xc0
je 0x406fc7
cmp ebx, 0x22
jne 0x406fa5
test byte [ebp - 0x2b8], 0x80
je 0x40704a
xor dword [ebp - 0x2b8], 0x80
jmp 0x40704a
cmp ebx, 0x27
jne 0x40704a
test byte [ebp - 0x2b8], 0x40
je 0x40704a
xor dword [ebp - 0x2b8], 0x40
jmp 0x40704a
cmp ebx, 0x22
jne 0x406fe4
test dword [ebp - 0x2b8], 0x100
je 0x40704a
xor dword [ebp - 0x2b8], 0x180
jmp 0x40704a
cmp ebx, 0x27
jne 0x407001
test dword [ebp - 0x2b8], 0x100
je 0x40704a
xor dword [ebp - 0x2b8], 0x140
jmp 0x40704a
cmp ebx, 0x3d
jne 0x407023
cmp dword [ebp - 0x2d4], ebx
je 0x407023
mov eax, 0x100
test dword [ebp - 0x2b8], eax
jne 0x407023
xor dword [ebp - 0x2b8], eax
jmp 0x40704a
test dword [ebp - 0x2b8], 0x100
je 0x40704a
push ebx
push 0x476774
call fcn.0044f69a
pop ecx
pop ecx
test eax, eax
jne 0x40704a
xor dword [ebp - 0x2b8], 0x100
mov eax, dword [ebp - 0x2d4]
mov dword [ebp - 0x2d8], eax
mov dword [ebp - 0x2d4], ebx
jmp 0x4070f8
test byte [ebp - 0x2bc], 0x40
je 0x4070f8
cmp ebx, 0x22
jne 0x407088
test byte [ebp - 0x2b8], 0x40
jne 0x4070f8
xor dword [ebp - 0x2b8], 0x80
jmp 0x4070f8
cmp ebx, 0x27
jne 0x4070f8
test byte [ebp - 0x2b8], 0x80
jne 0x4070f8
xor dword [ebp - 0x2b8], 0x40
jmp 0x4070f8
cmp dword [ebp - 0x2b8], 0
je 0x407489
test byte [ebp - 0x2b8], 0x10
je 0x40716c
cmp ebx, 0x3c
je 0x407543
push ebx
push 0x476774
call fcn.0044f69a
pop ecx
pop ecx
test eax, eax
jne 0x4070f8
xor dword [ebp - 0x2b8], 0x10
mov dword [ebp - 0x2bc], 2
mov dword [ebp - 0x2c8], 1
mov dword [ebp - 0x2c0], 0x476988
add dword [ebp - 0x2c4], 2
mov eax, dword [ebp - 0x2c4]
movzx ebx, word [eax]
test ebx, ebx
jne 0x406e14
mov edx, eax
sub edx, dword [edi + 0xc]
sar edx, 1
dec edx
cmp dword [ebp - 0x2bc], 4
mov dword [ebp - 0x2cc], edx
je 0x407459
cmp dword [ebp - 0x2bc], 2
je 0x407459
test byte [ebp - 0x2b8], 0x20
mov ecx, 0x476980
jne 0x4074fa
mov eax, dword [ebp - 0x2bc]
cmp eax, 0x40
je 0x4074fa
cmp eax, 1
jne 0x4074cb
mov ecx, 0x476968
jmp 0x4074ff
test byte [ebp - 0x2b8], 1
je 0x40726f
xor eax, eax
inc eax
xor dword [ebp - 0x2b8], eax
cmp ebx, 0x60
ja 0x407249
cmp ebx, 0x40
jbe 0x407199
cmp ebx, 0x5b
jb 0x407249
cmp ebx, 0x5f
je 0x407249
cmp ebx, 0x3a
je 0x407249
cmp ebx, 0x2f
jne 0x4071c9
and dword [ebp - 0x2bc], 0
mov dword [ebp - 0x2c0], 0x476964
mov dword [ebp - 0x2c8], eax
jmp 0x4071fd
cmp ebx, 0x21
jne 0x4071da
or dword [ebp - 0x2b8], 2
jmp 0x4070f8
cmp ebx, 0x3f
jne 0x40720e
mov dword [ebp - 0x2c0], 0x47695c
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 0x4070f8
push dword [ebp - 0x2cc]
lea eax, [ebp - 0x2b4]
push 0x476934
push 0x476900
push eax
mov dword [ebp - 0x2c0], 0x476964
mov dword [ebp - 0x2c8], 1
call fcn.004500d6
lea eax, [ebp - 0x2b4]
jmp 0x4073f9
mov esi, dword [ebp - 0x2c4]
sub esi, dword [edi + 0xc]
mov dword [ebp - 0x2c0], 0x476964
mov dword [ebp - 0x2c8], eax
mov dword [ebp - 0x2bc], eax
sar esi, 1
jmp 0x4070f8
test byte [ebp - 0x2b8], 2
je 0x407323
xor dword [ebp - 0x2b8], 2
cmp ebx, 0x2d
jne 0x407294
or dword [ebp - 0x2b8], 4
jmp 0x4070f8
cmp ebx, 0x5b
jne 0x4072ae
test byte [ebp - 0x2b8], 0x20
jne 0x4072c8
or dword [ebp - 0x2b8], 8
jmp 0x4070f8
cmp ebx, 0x44
jne 0x4072c8
test byte [ebp - 0x2b8], 0x20
jne 0x4072c8
or dword [ebp - 0x2b8], 0x20
jmp 0x4070f8
push ebx
push 0x4768f8
call fcn.0044f69a
pop ecx
pop ecx
mov dword [ebp - 0x2c0], 0x476964
mov dword [ebp - 0x2c8], 1
test eax, eax
je 0x4072fc
mov dword [ebp - 0x2bc], 0x40
jmp 0x4070f8
push dword [ebp - 0x2cc]
lea eax, [ebp - 0x1ec]
push 0x4768ec
push 0x476900
push eax
call fcn.004500d6
lea eax, [ebp - 0x1ec]
jmp 0x4073f9
test byte [ebp - 0x2b8], 4
je 0x407393
xor dword [ebp - 0x2b8], 4
cmp ebx, 0x2d
jne 0x40735b
mov dword [ebp - 0x2c0], 0x4768e4
mov dword [ebp - 0x2c8], 3
mov dword [ebp - 0x2bc], 0x20
jmp 0x4070f8
push dword [ebp - 0x2cc]
lea eax, [ebp - 0x124]
push 0x4768cc
push 0x476900
push eax
mov dword [ebp - 0x2c0], 0x476964
mov dword [ebp - 0x2c8], 1
call fcn.004500d6
lea eax, [ebp - 0x124]
jmp 0x4073f9
test byte [ebp - 0x2b8], 8
je 0x407417
push 8
pop eax
xor dword [ebp - 0x2b8], eax
cmp ebx, 0x43
jne 0x4073c9
mov dword [ebp - 0x2c0], 0x4768c4
mov dword [ebp - 0x2c8], 3
mov dword [ebp - 0x2bc], eax
jmp 0x4070f8
push dword [ebp - 0x2cc]
lea eax, [ebp - 0x5c]
push 0x476980
push 0x476900
push eax
mov dword [ebp - 0x2c0], 0x476964
mov dword [ebp - 0x2c8], 1
call fcn.004500d6
lea eax, [ebp - 0x5c]
mov ecx, dword [ebp - 0x2d0]
add esp, 0x10
push eax
add ecx, 0x10
call fcn.00406a20
or dword [ebp - 0x2bc], 0xffffffff
jmp 0x4070f8
test byte [ebp - 0x2b8], 0x20
je 0x4070f8
cmp ebx, 0x3c
jne 0x407435
or dword [ebp - 0x2b8], 1
jmp 0x4070f8
cmp ebx, 0x3e
jne 0x4070f8
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.0044f033
add ebp, 0x70
leave
ret
cmp ebx, 0x3c
jne 0x40749d
mov dword [ebp - 0x2b8], 1
jmp 0x4070f8
push ebx
push 0x476774
mov dword [ebp - 0x2bc], 4
call fcn.0044f69a
pop ecx
pop ecx
test eax, eax
je 0x4070da
mov dword [ebp - 0x2b8], 0x10
jmp 0x4070f8
test eax, eax
jne 0x4074d6
mov ecx, 0x4768a4
jmp 0x4074ff
cmp eax, 8
jne 0x4074e2
mov ecx, 0x476888
jmp 0x4074ff
cmp eax, 0x10
jne 0x4074ee
mov ecx, 0x476858
jmp 0x4074ff
cmp eax, 0x20
jne 0x4074ff
mov ecx, 0x476848
jmp 0x4074ff
mov ecx, 0x476838
mov esi, dword [ebp - 0x2d0]
push dword [esi + 4]
or dword [ebp - 0x2bc], 0xffffffff
push ecx
lea eax, [ebp - 0x5c]
push 0x4767fc
push eax
call fcn.004500d6
add esp, 0x10
lea eax, [ebp - 0x5c]
push eax
lea ecx, [esi + 0x10]
call fcn.00406a20
jmp 0x407459
mov eax, dword [ebp - 0x2c4]
sub eax, dword [edi + 0xc]
sar eax, 1
dec eax
jmp 0x407453
mov eax, dword [ebp - 0x2c4]
sub eax, dword [edi + 0xc]
mov dword [ebp - 0x2bc], 4
sar eax, 1
dec eax
jmp 0x407453