Function at 0x402e67
Capabilities:
Parse credit card information

Disassembly:
mov dword [edx + 8], ebp
cmp word [ebx], bp
je 0x40306f
jmp 0x402e80
movzx eax, word [ebx + ebp*2]
cmp ax, 0x20
je 0x402f85
cmp ax, 9
je 0x402f85
movzx eax, word [ebx + ebp*2]
test ax, ax
je 0x40305a
movzx esi, ax
mov dword [esp + 0x10], ebp
mov word [esp + 0x1e], bp
cmp si, 0x30
jae 0x402f8b
cmp si, 0x2e
je 0x402f95
cmp si, 0x41
jae 0x4030f9
cmp si, 0x61
jae 0x403363
add byte [eax], al
cmp si, 0x5f
je 0x403103
movzx eax, si
cmp eax, 0x24
je 0x4030be
cmp eax, 0x3d
je 0x40313a
cmp eax, 0x28
je 0x403177
cmp eax, 0x29
je 0x403159
cmp eax, 0x22
je case.0x402f26.39
sub eax, 0x1a
cmp eax, 0x44
ja case.0x402f26.27
movzx ecx, byte [eax + 0x403428]
jmp dword [ecx*4 + 0x4033ec]
inc ebp
jmp 0x402e80
cmp si, 0x39
ja 0x402ebb
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x18]
push ecx
push ebx
lea eax, [esp + 0x1c]
call fcn.004035d0
cmp al, 1
jne 0x42b421
mov edi, dword [esp + 0x3c]
lea edx, [esp + 0x14]
push edx
call fcn.00402cc0
mov ebp, dword [esp + 0x10]
jmp 0x40304f
cmp ax, 0x30
jae 0x40323a
cmp ax, 0x5f
je 0x4030ec
cmp dword [esp + 0x24], 0
je 0x42b5d0
lea eax, [esp + 0x20]
call fcn.00402ae0
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
push esi
push edi
call dword [0x482640]
cmp word [esp + 0x1c], 0x30
jge 0x40328e
mov edx, 0x33
push 0x10
mov word [esp + 0x20], dx
call fcn.0041171a
add esp, 4
test eax, eax
je 0x42b5c3
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov dword [eax], edi
mov dword [eax + 4], esi
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
inc dword [ecx]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
mov edi, dword [esp + 0x40]
call fcn.00402cc0
cmp word [ebx + ebp*2], 0
jne 0x402e80
mov ax, word [esp + 0x1c]
cmp ax, 0x30
jl 0x40306f
cmp ax, 0x3f
jle 0x40326d
mov edi, dword [esp + 0x3c]
lea ecx, [esp + 0x14]
mov eax, 0x7f
push ecx
mov word [esp + 0x20], ax
mov dword [esp + 0x18], 0
mov word [esp + 0x22], bp
call fcn.00402cc0
mov esi, dword [esp + 0x2c]
add dword [esi], 0xffffffff
jne 0x4030b3
mov edx, dword [esp + 0x20]
push edx
call fcn.004112ef
add esp, 4
push esi
call fcn.004112ef
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
add esp, 0x28
ret 8
lea esi, [esp + 0x20]
inc ebp
call fcn.00403770
movzx eax, word [ebx + ebp*2]
cmp ax, 0x5a
ja 0x4030d8
cmp ax, 0x41
jae 0x4030ec
cmp ax, 0x61
jb 0x402fc8
cmp ax, 0x7a
ja 0x402fc8
push eax
lea eax, [esp + 0x24]
call fcn.00403470
inc ebp
jmp 0x4030c8
cmp si, 0x5a
ja 0x402ecf
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x18]
mov ecx, ebx
call fcn.00402b70
cmp dword [esp + 0x14], 0xffffffff
je 0x42b5fe
mov edi, dword [esp + 0x3c]
lea eax, [esp + 0x14]
push eax
call fcn.00402cc0
mov ebp, dword [esp + 0x10]
jmp 0x40304f
inc ebp
cmp word [ebx + ebp*2], 0x3d
lea esi, [esp + 0x14]
je 0x42b599
mov edi, 0x41
call fcn.00402b00
jmp 0x403041
mov edi, 0x48
lea esi, [esp + 0x14]
call fcn.00402b00
mov edi, dword [esp + 0x3c]
push esi
call fcn.00402cc0
inc ebp
jmp 0x40304f
mov edi, 0x47
lea esi, [esp + 0x14]
call fcn.00402b00
mov edi, dword [esp + 0x3c]
push esi
call fcn.00402cc0
inc ebp
jmp 0x40304f
mov edx, dword [esp + 0x38]
push edx
lea eax, [esp + 0x24]
lea edi, [esp + 0x14]
call fcn.00403530
lea esi, [esp + 0x14]
test eax, eax
jne 0x42b68a
lea edi, [eax + 0x36]
call fcn.00402b00
lea esi, [esp + 0x20]
lea edi, [esp + 0x14]
call fcn.00402650
push edi
mov edi, dword [esp + 0x40]
call fcn.00402cc0
mov ebp, dword [esp + 0x10]
jmp 0x40304f
mov edi, 0x4d
lea esi, [esp + 0x14]
call fcn.00402b00
inc ebp
cmp word [ebx + ebp*2], 0x3d
je 0x403372
push esi
jmp 0x403046
mov edi, 0x49
lea esi, [esp + 0x14]
call fcn.00402b00
inc ebp
cmp word [ebx + ebp*2], 0x3d
je 0x403387
push esi
jmp 0x403046
mov edi, 0x4c
lea esi, [esp + 0x14]
call fcn.00402b00
inc ebp
cmp word [ebx + ebp*2], 0x3d
jne 0x403041
jmp 0x42b529
cmp ax, 0x39
jbe 0x4030ec
jmp 0x402fd2
mov edi, 0x4b
lea esi, [esp + 0x14]
call fcn.00402b00
inc ebp
cmp word [ebx + ebp*2], 0x3d
je 0x42b4f7
lea ecx, [esp + 0x14]
push ecx
jmp 0x403046
mov esi, dword [esp + 0x14]
test esi, esi
je 0x40306f
mov ecx, esi
call fcn.00402620
push esi
call fcn.004112ef
add esp, 4
jmp 0x40306f
cmp word [esp + 0x1c], 0x3f
jg 0x40300c
jmp 0x42b5a9
mov edi, 0x4e
lea esi, [esp + 0x14]
call fcn.00402b00
mov edi, dword [esp + 0x3c]
push esi
call fcn.00402cc0
inc ebp
jmp 0x40304f
mov edi, 0x4f
lea esi, [esp + 0x14]
call fcn.00402b00
mov edi, dword [esp + 0x3c]
push esi
call fcn.00402cc0
inc ebp
jmp 0x40304f
lea esi, [esp + 0x20]
inc ebp
call fcn.00403770
movzx eax, word [ebx + ebp*2]
cmp ax, 0x5a
ja 0x4032f5
cmp ax, 0x41
jae 0x403301
cmp ax, 0x61
jb 0x40330e
cmp ax, 0x7a
ja 0x40330e
push eax
lea eax, [esp + 0x24]
call fcn.00403470
inc ebp
jmp 0x4032e5
cmp ax, 0x30
jae 0x42b4be
cmp ax, 0x5f
je 0x403301
cmp dword [esp + 0x24], 0
je 0x42b62f
lea eax, [esp + 0x20]
call fcn.00402ae0
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
push edx
push eax
call dword [0x482640]
mov edi, 0x32
lea esi, [esp + 0x14]
call fcn.00402b00
lea esi, [esp + 0x20]
lea edi, [esp + 0x14]
call fcn.00402650
push edi
jmp 0x403046
cmp si, 0x7a
jbe 0x403103
jmp 0x402ed9
mov edi, 0x56
lea esi, [esp + 0x14]
inc ebp
call fcn.00402b00
push esi
jmp 0x403046
mov edi, 0x52
lea esi, [esp + 0x14]
inc ebp
call fcn.00402b00
push esi
jmp 0x403046
movzx eax, word [ebx + ebp*2 + 2]
inc ebp
sub eax, 0x3d
lea esi, [esp + 0x14]
je 0x42b54d
sub eax, 1
je 0x42b53d
mov edi, 0x43
call fcn.00402b00
lea edx, [esp + 0x14]
push edx
jmp 0x403046
inc ebp
cmp word [ebx + ebp*2], 0x3d
lea esi, [esp + 0x14]
je 0x42b55d
mov edi, 0x42
call fcn.00402b00
jmp 0x403041
cmp byte [edx], al
add byte [ebx - 0x7bf0f508], al
clc
cmp byte [edx], al
add byte [ebx - 0x7bf0fa08], al
add al, 0x39
add al, byte [eax]
cmp eax, 0xb
je 0x42e021
cmp eax, 0xc
je 0x42e03f
mov eax, dword [esp + 0xb0]
mov dword [ebx], 0
mov dword [ebx + 8], eax
cmp eax, 1
jne 0x42e054
mov eax, dword [esp + 0xa8]
mov dword [ebx], eax
mov edi, dword [esp + 0x6c]
mov eax, dword [esp + 0x4c]
cmp byte [eax + 0xd], 0
jne 0x42e237
mov eax, dword [eax + 8]
mov byte [eax + 0x30], 0
cmp byte [0x4a7ce5], 0
jne 0x42e242
mov ecx, dword [0x4a7ce0]
cmp byte [0x4a7ce4], 0
jne 0x42e264
mov esi, dword [ecx]
mov edx, dword [ecx + 8]
mov dword [esp + 0x44], edx
mov dword [esp + 0x4c], ecx
test esi, esi
je 0x40a859
mov eax, dword [esi + 0x18]
mov ebx, ecx
test eax, eax
je 0x40a7a2
push eax
call fcn.0040b800
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x42e274
cmp byte [esi + 0x10], 0
jne 0x40a828
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x40a828
mov edi, dword [ebx + 0xc]
test edi, edi
je 0x40a7e2
mov eax, dword [edi + 0xc]
dec dword [eax]
mov eax, dword [edi + 0xc]
cmp dword [eax], 0
je 0x42e281
push edi
call fcn.004112ef
add esp, 4
mov dword [ebx + 0xc], 0
mov eax, dword [ebx + 8]
cmp eax, 8
je 0x42e29d
cmp eax, 0xa
je 0x42e2be
cmp eax, 5
je 0x42e2d3
cmp eax, 0xb
je 0x42e2df
cmp eax, 0xc
je 0x42e2fd
push ebx
mov dword [ebx + 8], 1
mov dword [ebx], 0
call fcn.004112ef
add esp, 4
mov eax, dword [esi + 0xc]
dec dword [eax]
mov ecx, dword [esi + 0xc]
cmp dword [ecx], 0
jne 0x40a84c
mov edx, dword [esi]
push edx
call fcn.004112ef
mov eax, dword [esi + 0xc]
add esp, 4
push eax
call fcn.004112ef
add esp, 4
push esi
call fcn.004112ef
mov edi, dword [esp + 0x70]
add esp, 4
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x68]
push ecx
call fcn.004112ef
mov edx, dword [esp + 0x48]
add esp, 4
mov dword [0x4a7ce0], edx
mov byte [0x4a7ce5], 0
mov eax, dword [esp + 0xdc]
dec dword [0x4a7cdc]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x148], eax
mov eax, dword [esp + 0xb4]
test eax, eax
jne 0x42e312
mov eax, dword [esp + 0xb0]
cmp eax, 8
je 0x42e328
cmp eax, 0xa
je 0x42e34c
cmp eax, 5
je 0x42e366
cmp eax, 0xb
je 0x42e377
cmp eax, 0xc
je 0x42e398
mov eax, dword [esp + 0x94]
mov esi, dword [esp + 0x90]
xor ecx, ecx
mov edx, 1
mov dword [esp + 0xb0], edx
mov dword [esp + 0xa8], ecx
cmp eax, ecx
jne 0x42e3b2
cmp esi, 8
je 0x42e3cd
cmp esi, 0xa
je 0x42e3fb
cmp esi, 5
je 0x42e41f
cmp esi, 0xb
je 0x42e435
cmp esi, 0xc
je 0x42e45b
mov eax, dword [esp + 0x2c]
cmp eax, ecx
jne 0x42e47f
mov eax, dword [esp + 0x28]
cmp eax, 8
je 0x42e497
cmp eax, 0xa
je 0x42e4c1
cmp eax, 5
je 0x42e4dd
cmp eax, 0xb
je 0x42e4f0
cmp eax, 0xc
je 0x42e517
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], ecx
cmp edi, ecx
jbe 0x40a988
xor esi, esi
mov edx, dword [esp + 0x68]
push edx
call fcn.004112ef
add esp, 4
cmp dword [esp + 0x38], 0
jbe 0x40aa22
xor ebx, ebx
mov eax, dword [esp + 0x34]
mov esi, dword [eax + ebx*4]
test esi, esi
je 0x40aa1b
mov edi, dword [esi + 0xc]
test edi, edi
je 0x40a9d5
mov eax, dword [edi + 0xc]
dec dword [eax]
mov ecx, dword [edi + 0xc]
cmp dword [ecx], 0
je 0x42e533
push edi
call fcn.004112ef
and al, 0x69
add byte [eax], al
add esp, 4
mov dword [esi + 0xc], 0
mov eax, dword [esi + 8]
cmp eax, 8
je 0x42e54f
cmp eax, 0xa
je 0x42e570
cmp eax, 5
je 0x42e585
cmp eax, 0xb
je 0x42e591
cmp eax, 0xc
je 0x42e5af
push esi
mov dword [esi + 8], 1
mov dword [esi], 0
call fcn.004112ef
add esp, 4
inc ebx
cmp ebx, dword [esp + 0x38]
jb 0x40a9a2
mov edx, dword [esp + 0x34]
push edx
call fcn.004112ef
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
add byte [eax], al
test esi, 0x10000
je 0x42b42b
fld qword [0x490320]
fst qword [esp + 0x10]
test al, 0x20
je 0x42b5f3
fchs
fstp qword [esp + 0x10]
loopne 0x42b400
pop esp
and al, 0x10
jmp 0x42b5f5
fldz
fstp qword [esp + 0x10]
test al, 0x20
je 0x42b5f5
fld qword [0x48c5b0]
fstp qword [esp + 0x10]
jmp 0x42b5f5
je 0x42b4ad
fld qword [0x490320]
fstp qword [esp + 0x10]
jmp 0x42b5f5
fldz
fstp qword [esp + 0x10]
jmp 0x42b5f5
add eax, 0xc6f7087a
add byte [edx], al
add byte [eax], al
jmp 0x42b44e
dec ecx
add ah, bl
or eax, 0x48c540
fstp qword [esp + 0x10]
jmp 0x42b5f5
add al, byte [eax]
add byte [edi], cl
test dword [ecx], ebp
add byte [eax], al
add bh, dh
mov byte [eax], 0
adc byte [eax], al
je 0x42b529
invalid
add bh, dh
mov byte [eax], 0
add dword [eax], eax
test esi, 0x10000
jne 0x42b439
fld qword [0x490320]
fchs
fstp qword [esp + 0x10]
jmp 0x42b5f5
test esi, 0x10038
je 0x42b454
fldz
fstp qword [esp + 0x10]
jmp 0x42b5f5
add byte [eax], al
add byte [ecx + 0x10038], ch
je 0x42b5c5
test esi, 0xffff0000
je 0x42b5c5
add byte [eax], al
invalid
lea ecx, [esp + 0x18]
call fcn.0040ab07
sub esp, 8
mov eax, ebp
cmc
std
inc dword [ebx - 0x3a74f714]
fstp qword [esp]
call 0x40bed7
mov ecx, eax
call fcn.0040ab07
sub esp, 8
fstp qword [esp]
call fcn.00427caf
sub esp, 8
fstp qword [esp]
call fcn.00427cd2
fstp qword [esp + 0x10]
test esi, 0x100000
je 0x42b5f5
add byte [ebp - 0x17e7db8c], cl
xchg esp, eax
leave
std
invalid
lea esi, [esp + 0x18]
call fcn.00407f37
fld qword [0x48c580]
mov ecx, esi
fstp qword [esp + 0x18]
mov dword [esp + 0x20], edi
call fcn.0040ab07
fmul qword [esp + 0x10]
fstp qword [esp + 0x10]
jmp 0x42b5f5
add byte [eax], al
lea ecx, [esp + 0x18]
call fcn.0040ab07
sub esp, 8
mov eax, ebp
fstp qword [esp]
or byte [ebx + 0x241cddc5], cl
call 0x40bed7
mov ecx, eax
call fcn.0040ab07
sub esp, 8
fstp qword [esp]
call fcn.00427cd2
fstp qword [esp + 0x10]
jmp 0x42b5f5
fstp st(0)
mov eax, ebp
call 0x40bed7
mov esi, eax
call fcn.00407f37
fld qword [esp + 0x10]
fstp qword [esi]
mov dword [esi + 8], edi
lea esi, [esp + 0x18]
call fcn.00407f37
jmp 0x40a6fc
add byte [eax], al
cmp edi, 0x10
jne 0x40a6fc
mov dword [esp + 0x20], eax
mov eax, ebp
mov dword [esp + 0x18], 0xffffffff
invalid
invalid
inc edi
inc esp
and al, 0x24
add byte [eax], al
add byte [eax], al
call 0x40bed7
mov esi, eax
lea eax, [esp + 0x18]
call fcn.0040abe7
lea esi, [esp + 0x18]
call fcn.00407f37
jmp 0x40a6fc
invalid
call dword [eax - 0x18]
ja 0x42b6f2
add al, byte [eax]
jmp 0x40a6fc
add byte [ebx + 0x708dffc9], al
add dword [ecx - 0x7699efbb], ecx
dec esp
and al, 0x28
xor ecx, ecx
xor edi, edi
mov eax, esi
mov edx, 0x10
add byte [eax], al
add bh, dh
loop 0x42b71e
nop
rol edi, 0x44
and al, 0x6c
add al, 0
add byte [eax], al
invalid
mov dword [esp + 0x38], 0x485234
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.00410391
add esp, 4
cmp eax, edi
je 0x42b75f
lea edi, [eax + 4]
mov dword [eax], esi
push 0x10
mov ebx, 0x4027b6
mov eax, esi
mov ecx, edi
call fcn.0040f797
or ecx, 0xffffffff
mov eax, 1
cmp dword [ebp + 0x10], eax
mov dword [ebp + 0x44], edi
mov word [esp + 0x2a], cx
jl 0x42b93a
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0x10
lea ebx, [esp + 0x38]
call fcn.0040be57
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x74]
movzx ebx, byte [ecx + edx]
lea eax, [ecx + edx]
inc ecx
mov edi, ebx
lea esi, [esp + 0x20]
mov dword [esp + 0x6c], ecx
call fcn.00401777
retf
pop edi
std
call dword [esi - 0x18]
inc ebp
mov eax, dword [eax]
invalid
test al, al
je 0x42b7d3
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x74]
lea eax, [ecx + edx]
mov eax, dword [eax]
add ecx, 4
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x20], eax
jmp 0x42b8fa
lea ecx, [esp + 0x20]
push ecx
call fcn.004342d9
test al, al
je 0x42b805
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x74]
lea eax, [ecx + edx]
mov edx, dword [eax + 4]
add ecx, 8
mov dword [esp + 0x6c], ecx
mov ecx, dword [eax]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
jmp 0x42b8fa
lea eax, [esp + 0x20]
push eax
call fcn.004342bb
test al, al
je 0x42b831
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x74]
fld qword [ecx + edx]
lea eax, [ecx + edx]
add ecx, 8
fstp qword [esp + 0x20]
mov dword [esp + 0x6c], ecx
jmp 0x42b8fa
lea eax, [esp + 0x20]
call fcn.0040beb7
test al, al
je 0x42b8fa
mov ecx, dword [esp + 0x74]
lea eax, [esp + 0x6c]
push eax
push ecx
mov dword [esp + 0x1c], ebx
call fcn.00443cc8
mov ebx, eax
mov eax, edi
cmp eax, 0x31
jne 0x42b893
mov edi, ebx
lea esi, [esp + 0x48]
call 0x4007e7
push esi
push ebp
call fcn.00443c92
mov ecx, esi
mov dword [esp + 0x70], eax
call fcn.00401297
mov edi, 1
lea esi, [esp + 0x20]
call fcn.00401777
mov eax, dword [esp + 0x70]
mov dword [esp + 0x20], eax
jmp 0x42b8ed
cmp eax, 0x30
jne 0x42b8c9
mov edi, ebx
lea esi, [esp + 0x58]
call 0x4007e7
push esi
call fcn.00443c61
mov ecx, esi
mov dword [esp + 0x70], eax
call fcn.00401297
xor edi, edi
lea esi, [esp + 0x20]
call fcn.00401777
mov edx, dword [esp + 0x70]
mov dword [esp + 0x20], edx
jmp 0x42b8ed
push ebx
cmp eax, 0x37
jne 0x42b8e3
push ebp
call fcn.0044b483
push ebx
call fcn.0040ff66
add esp, 4
jmp 0x42b78d
lea eax, [esp + 0x24]
push eax
call fcn.0044a07f
push ebx
call fcn.0040ff66
mov ebx, dword [esp + 0x18]
add esp, 4
lea ecx, [esp + 0x20]
push ecx
lea edi, [esp + 0x3c]
call fcn.00401937
cmp ebx, 0x7f
jne 0x42b78d
mov eax, dword [ebp + 0x44]
mov esi, dword [esp + 0x1c]
push edi
add eax, esi
push eax
call fcn.00401317
mov eax, dword [esp + 0x18]
inc eax
add esi, 0x10
cmp eax, dword [ebp + 0x10]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], esi
jle 0x42b784
mov ecx, dword [esp + 0x74]
push ecx
call fcn.004126ff
add esp, 4
lea edx, [esp + 0x2c]
push edx
call fcn.00433c58
lea ecx, [esp + 0x38]
call fcn.0040d9d7
lea eax, [esp + 0x20]
push eax
call fcn.0044a0ca
mov al, 1
jmp fcn.0040e0bd