Function at 0x406ded
Capabilities:
Parse credit card information

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x34c
mov eax, dword [0x4d9778]
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 0x406e6a
push 0xfffffffffffffffe
mov dword [ecx + 8], esi
mov dword [ecx], esi
pop eax
jmp 0x4074da
push ebx
movzx ebx, ax
test ebx, ebx
je 0x407174
test esi, esi
je 0x406ed3
push ebx
push 0x47368c
call fcn.0044d05a
pop ecx
pop ecx
test eax, eax
je 0x40715a
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 0x406eb2
lea eax, [eax + esi - 1]
mov dword [edi], esi
mov dword [edi + 4], eax
jmp 0x406ec5
push eax
lea eax, [ecx + esi*2]
mov ecx, dword [ebp - 0x2d0]
push eax
add ecx, 0x10
call fcn.004069ab
xor esi, esi
mov dword [ebp - 0x2d8], esi
mov dword [ebp - 0x2d4], esi
mov edx, dword [ebp - 0x2c0]
test edx, edx
je 0x407101
cmp ebx, 0x3e
jne 0x406fb1
test byte [ebp - 0x2b8], 0xc0
jne 0x406fd0
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 0x406f59
and dword [ebp - 0x2c0], 0
cmp dword [ebp - 0x2bc], ecx
jne 0x406f9f
cmp dword [ebp - 0x2d4], 0x2f
jne 0x406f9f
cmp dword [ebp - 0x2d8], 0
je 0x406f4a
push dword [ebp - 0x2d8]
push 0x47367c
call fcn.0044d05a
pop ecx
pop ecx
test eax, eax
je 0x406f9f
mov eax, dword [ebp - 0x2d0]
or dword [eax + 0xc], 0x10000
jmp 0x406f9f
cmp eax, ecx
jle 0x406f92
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 0x406f8b
mov cx, word [eax]
mov bx, word [edx + eax]
inc eax
inc eax
cmp cx, bx
je 0x406f73
jmp 0x406f92
and dword [ebp - 0x2c0], 0
cmp dword [ebp - 0x2c0], 0
jne 0x40715a
test byte [ebp - 0x2b8], 0x20
je 0x4074bb
jmp 0x40715a
cmp ebx, 0x3c
jne 0x406fd0
cmp dword [ebp - 0x2bc], 2
je 0x407594
cmp dword [ebp - 0x2bc], 0xffffffff
je 0x407594
test byte [ebp - 0x2bc], 1
je 0x4070c3
test byte [ebp - 0x2b8], 0xc0
je 0x407029
cmp ebx, 0x22
jne 0x407007
test byte [ebp - 0x2b8], 0x80
je 0x4070ac
xor dword [ebp - 0x2b8], 0x80
jmp 0x4070ac
cmp ebx, 0x27
jne 0x4070ac
test byte [ebp - 0x2b8], 0x40
je 0x4070ac
xor dword [ebp - 0x2b8], 0x40
jmp 0x4070ac
cmp ebx, 0x22
jne 0x407046
test dword [ebp - 0x2b8], 0x100
je 0x4070ac
xor dword [ebp - 0x2b8], 0x180
jmp 0x4070ac
cmp ebx, 0x27
jne 0x407063
test dword [ebp - 0x2b8], 0x100
je 0x4070ac
xor dword [ebp - 0x2b8], 0x140
jmp 0x4070ac
cmp ebx, 0x3d
jne 0x407085
cmp dword [ebp - 0x2d4], ebx
je 0x407085
mov eax, 0x100
test dword [ebp - 0x2b8], eax
jne 0x407085
xor dword [ebp - 0x2b8], eax
jmp 0x4070ac
test dword [ebp - 0x2b8], 0x100
je 0x4070ac
push ebx
push 0x473464
call fcn.0044d05a
pop ecx
pop ecx
test eax, eax
jne 0x4070ac
xor dword [ebp - 0x2b8], 0x100
mov eax, dword [ebp - 0x2d4]
mov dword [ebp - 0x2d8], eax
mov dword [ebp - 0x2d4], ebx
jmp 0x40715a
test byte [ebp - 0x2bc], 0x40
je 0x40715a
cmp ebx, 0x22
jne 0x4070ea
test byte [ebp - 0x2b8], 0x40
jne 0x40715a
xor dword [ebp - 0x2b8], 0x80
jmp 0x40715a
cmp ebx, 0x27
jne 0x40715a
test byte [ebp - 0x2b8], 0x80
jne 0x40715a
xor dword [ebp - 0x2b8], 0x40
jmp 0x40715a
cmp dword [ebp - 0x2b8], 0
je 0x4074eb
test byte [ebp - 0x2b8], 0x10
je 0x4071ce
cmp ebx, 0x3c
je 0x4075a5
push ebx
push 0x473464
call fcn.0044d05a
pop ecx
pop ecx
test eax, eax
jne 0x40715a
xor dword [ebp - 0x2b8], 0x10
mov dword [ebp - 0x2bc], 2
mov dword [ebp - 0x2c8], 1
mov dword [ebp - 0x2c0], 0x473678
add dword [ebp - 0x2c4], 2
mov eax, dword [ebp - 0x2c4]
movzx ebx, word [eax]
test ebx, ebx
jne 0x406e76
mov edx, eax
sub edx, dword [edi + 0xc]
sar edx, 1
dec edx
cmp dword [ebp - 0x2bc], 4
mov dword [ebp - 0x2cc], edx
je 0x4074bb
cmp dword [ebp - 0x2bc], 2
je 0x4074bb
test byte [ebp - 0x2b8], 0x20
mov ecx, 0x473670
jne 0x40755c
mov eax, dword [ebp - 0x2bc]
cmp eax, 0x40
je 0x40755c
cmp eax, 1
jne 0x40752d
mov ecx, 0x473658
jmp 0x407561
test byte [ebp - 0x2b8], 1
je 0x4072d1
xor eax, eax
inc eax
xor dword [ebp - 0x2b8], eax
cmp ebx, 0x60
ja 0x4072ab
cmp ebx, 0x40
jbe 0x4071fb
cmp ebx, 0x5b
jb 0x4072ab
cmp ebx, 0x5f
je 0x4072ab
cmp ebx, 0x3a
je 0x4072ab
cmp ebx, 0x2f
jne 0x40722b
and dword [ebp - 0x2bc], 0
mov dword [ebp - 0x2c0], 0x473654
mov dword [ebp - 0x2c8], eax
jmp 0x40725f
cmp ebx, 0x21
jne 0x40723c
or dword [ebp - 0x2b8], 2
jmp 0x40715a
cmp ebx, 0x3f
jne 0x407270
mov dword [ebp - 0x2c0], 0x47364c
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 0x40715a
push dword [ebp - 0x2cc]
lea eax, [ebp - 0x2b4]
push 0x473624
push 0x4735f0
push eax
mov dword [ebp - 0x2c0], 0x473654
mov dword [ebp - 0x2c8], 1
call fcn.0044da96
lea eax, [ebp - 0x2b4]
jmp 0x40745b
mov esi, dword [ebp - 0x2c4]
sub esi, dword [edi + 0xc]
mov dword [ebp - 0x2c0], 0x473654
mov dword [ebp - 0x2c8], eax
mov dword [ebp - 0x2bc], eax
sar esi, 1
jmp 0x40715a
test byte [ebp - 0x2b8], 2
je 0x407385
xor dword [ebp - 0x2b8], 2
cmp ebx, 0x2d
jne 0x4072f6
or dword [ebp - 0x2b8], 4
jmp 0x40715a
cmp ebx, 0x5b
jne 0x407310
test byte [ebp - 0x2b8], 0x20
jne 0x40732a
or dword [ebp - 0x2b8], 8
jmp 0x40715a
cmp ebx, 0x44
jne 0x40732a
test byte [ebp - 0x2b8], 0x20
jne 0x40732a
or dword [ebp - 0x2b8], 0x20
jmp 0x40715a
push ebx
push 0x4735e8
call fcn.0044d05a
pop ecx
pop ecx
mov dword [ebp - 0x2c0], 0x473654
mov dword [ebp - 0x2c8], 1
test eax, eax
je 0x40735e
mov dword [ebp - 0x2bc], 0x40
jmp 0x40715a
push dword [ebp - 0x2cc]
lea eax, [ebp - 0x1ec]
push 0x4735dc
push 0x4735f0
push eax
call fcn.0044da96
lea eax, [ebp - 0x1ec]
jmp 0x40745b
test byte [ebp - 0x2b8], 4
je 0x4073f5
xor dword [ebp - 0x2b8], 4
cmp ebx, 0x2d
jne 0x4073bd
mov dword [ebp - 0x2c0], 0x4735d4
mov dword [ebp - 0x2c8], 3
mov dword [ebp - 0x2bc], 0x20
jmp 0x40715a
push dword [ebp - 0x2cc]
lea eax, [ebp - 0x124]
push 0x4735bc
push 0x4735f0
push eax
mov dword [ebp - 0x2c0], 0x473654
mov dword [ebp - 0x2c8], 1
call fcn.0044da96
lea eax, [ebp - 0x124]
jmp 0x40745b
test byte [ebp - 0x2b8], 8
je 0x407479
push 8
pop eax
xor dword [ebp - 0x2b8], eax
cmp ebx, 0x43
jne 0x40742b
mov dword [ebp - 0x2c0], 0x4735b4
mov dword [ebp - 0x2c8], 3
mov dword [ebp - 0x2bc], eax
jmp 0x40715a
push dword [ebp - 0x2cc]
lea eax, [ebp - 0x5c]
push 0x473670
push 0x4735f0
push eax
mov dword [ebp - 0x2c0], 0x473654
mov dword [ebp - 0x2c8], 1
call fcn.0044da96
lea eax, [ebp - 0x5c]
mov ecx, dword [ebp - 0x2d0]
add esp, 0x10
push eax
add ecx, 0x10
call fcn.00406a49
or dword [ebp - 0x2bc], 0xffffffff
jmp 0x40715a
test byte [ebp - 0x2b8], 0x20
je 0x40715a
cmp ebx, 0x3c
jne 0x407497
or dword [ebp - 0x2b8], 1
jmp 0x40715a
cmp ebx, 0x3e
jne 0x40715a
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.0044c9fb
add ebp, 0x70
leave
ret
cmp ebx, 0x3c
jne 0x4074ff
mov dword [ebp - 0x2b8], 1
jmp 0x40715a
push ebx
push 0x473464
mov dword [ebp - 0x2bc], 4
call fcn.0044d05a
pop ecx
pop ecx
test eax, eax
je 0x40713c
mov dword [ebp - 0x2b8], 0x10
jmp 0x40715a
test eax, eax
jne 0x407538
mov ecx, 0x473594
jmp 0x407561
cmp eax, 8
jne 0x407544
mov ecx, 0x473578
jmp 0x407561
cmp eax, 0x10
jne 0x407550
mov ecx, 0x473548
jmp 0x407561
cmp eax, 0x20
jne 0x407561
mov ecx, 0x473538
jmp 0x407561
mov ecx, 0x473528
mov esi, dword [ebp - 0x2d0]
push dword [esi + 4]
or dword [ebp - 0x2bc], 0xffffffff
push ecx
lea eax, [ebp - 0x5c]
push 0x4734ec
push eax
call fcn.0044da96
add esp, 0x10
lea eax, [ebp - 0x5c]
push eax
lea ecx, [esi + 0x10]
call fcn.00406a49
jmp 0x4074bb
mov eax, dword [ebp - 0x2c4]
sub eax, dword [edi + 0xc]
sar eax, 1
dec eax
jmp 0x4074b5
mov eax, dword [ebp - 0x2c4]
sub eax, dword [edi + 0xc]
mov dword [ebp - 0x2bc], 4
sar eax, 1
dec eax
jmp 0x4074b5