Function at 0x440f40
Capabilities:
Parse credit card information

Disassembly:
push 0xffffffffffffffff
push 0x4aef98
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x4c
push ebx
push esi
mov esi, dword [esp + 0x64]
xor ebx, ebx
push edi
push ebx
mov al, byte [esi]
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2c], al
call fcn.00410c90
mov ecx, dword [0x4b49e8]
push ecx
push ebx
push esi
lea ecx, [esp + 0x34]
call fcn.004111c0
mov edi, 0x4d83ac
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x60], ebx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x4d83ac
mov ecx, esi
call fcn.00410d10
mov dl, byte [esp + 0x68]
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x38], dl
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov ecx, dword [esp + 0x30]
xor eax, eax
cmp ecx, ebx
mov byte [esp + 0x60], 1
mov byte [esp + 0xf], bl
mov byte [esp + 0xe], bl
mov byte [esp + 0xd], bl
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
jbe 0x441824
mov ecx, dword [esp + 0x2c]
push ebp
mov ebp, esi
test eax, eax
jne 0x44101a
test ecx, ecx
je 0x440ffc
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov eax, dword [esp + 0x30]
jmp 0x441001
mov eax, 0x4b49e4
mov al, byte [eax]
mov byte [esp + 0x1c], al
mov ecx, dword [esp + 0x1c]
push ecx
push 1
mov ecx, ebp
call fcn.00418c60
jmp 0x4413d1
lea ecx, [esp + 0x3c]
call fcn.004137b0
test eax, eax
jne 0x441266
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
lea esi, [eax - 1]
cmp ecx, esi
mov ecx, dword [esp + 0x30]
jb 0x441058
test ecx, ecx
je 0x441058
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
lea edx, [ecx + esi]
jmp 0x44105d
mov edx, 0x4b49e4
cmp byte [edx], 0x3d
jne 0x441123
mov edx, dword [esp + 0x34]
mov esi, eax
cmp edx, eax
jb 0x44108a
test ecx, ecx
je 0x44108a
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
lea edx, [ecx + esi]
jmp 0x44108f
mov edx, 0x4b49e4
cmp byte [edx], 0x3f
jne 0x441123
mov eax, dword [esp + 0x44]
lea edx, [esp + 0x14]
push edx
push eax
lea ecx, [esp + 0x44]
call fcn.0041f4d0
mov eax, dword [ebp + 8]
test eax, eax
je 0x4413d1
mov ecx, ebp
call fcn.0041f450
mov eax, dword [ebp + 4]
test eax, eax
jne 0x4410c8
xor edi, edi
jmp 0x4410cd
mov edi, dword [ebp + 8]
add edi, eax
mov ecx, ebp
call fcn.0041f450
mov ecx, dword [ebp + 4]
test ecx, ecx
jne 0x4410df
xor eax, eax
jmp 0x4410e4
mov eax, dword [ebp + 8]
add eax, ecx
mov ecx, ebp
lea esi, [eax - 1]
call fcn.0041f450
mov ecx, dword [ebp + 4]
test esi, esi
jne 0x4410f9
xor eax, eax
jmp 0x4410fd
mov eax, esi
sub eax, ecx
test edi, edi
jne 0x441111
xor ecx, ecx
push ecx
push eax
mov ecx, ebp
call fcn.0041f330
jmp 0x4413d1
sub edi, esi
mov ecx, edi
push ecx
push eax
mov ecx, ebp
call fcn.0041f330
jmp 0x4413d1
mov dl, byte [esp + 0x11]
test dl, dl
je 0x44121a
mov edx, dword [esp + 0x34]
mov esi, eax
cmp edx, eax
jb 0x441153
test ecx, ecx
je 0x441153
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
lea edx, [ecx + esi]
jmp 0x441158
mov edx, 0x4b49e4
cmp byte [edx], 9
je 0x4411b4
mov edx, dword [esp + 0x34]
mov esi, eax
cmp edx, eax
jb 0x441181
test ecx, ecx
je 0x441181
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
lea edx, [ecx + esi]
jmp 0x441186
mov edx, 0x4b49e4
cmp byte [edx], 0x20
je 0x4411b4
mov edx, dword [esp + 0x34]
mov byte [esp + 0x11], 0
cmp edx, eax
mov esi, eax
jb 0x4411c2
test ecx, ecx
je 0x4411c2
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
lea edx, [ecx + esi]
jmp 0x4411c7
mov ebp, dword [esp + 0x6c]
mov byte [esp + 0x11], 1
jmp 0x4413d9
mov edx, 0x4b49e4
cmp byte [edx], 0x3d
je 0x44121a
mov esi, dword [esp + 0x18]
cmp esi, eax
jge 0x44121a
mov edi, dword [esp + 0x6c]
cmp dword [esp + 0x34], esi
jb 0x4411f4
test ecx, ecx
je 0x4411f4
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
lea eax, [ecx + esi]
jmp 0x4411f9
mov eax, 0x4b49e4
mov dl, byte [eax]
mov ecx, edi
mov byte [esp + 0x20], dl
mov eax, dword [esp + 0x20]
push eax
push 1
call fcn.00418c60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
inc esi
cmp esi, eax
jl 0x4411d8
mov edx, dword [esp + 0x34]
mov esi, eax
cmp edx, eax
jb 0x44123a
test ecx, ecx
je 0x44123a
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
lea eax, [ecx + esi]
jmp 0x44123f
mov eax, 0x4b49e4
mov dl, byte [eax]
mov ecx, dword [esp + 0x6c]
mov byte [esp + 0x24], dl
mov eax, dword [esp + 0x24]
push eax
push 1
call fcn.00418c60
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x6c]
jmp 0x4413d9
mov eax, dword [esp + 0x40]
test eax, eax
je 0x441280
mov ecx, dword [esp + 0x44]
sub ecx, eax
sar ecx, 2
cmp ecx, 3
jae 0x441479
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
cmp ecx, eax
mov ecx, dword [esp + 0x30]
mov esi, eax
jb 0x4412ac
test ecx, ecx
je 0x4412ac
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
lea edx, [ecx + esi]
jmp 0x4412b1
mov edx, 0x4b49e4
cmp byte [edx], 0x3f
jne 0x4413d9
mov edx, dword [esp + 0x40]
test edx, edx
je 0x4413ad
mov esi, dword [esp + 0x44]
sub esi, edx
and esi, 0xfffffffc
cmp esi, 8
jne 0x4413ad
mov ebx, dword [edx + 4]
mov esi, eax
sub esi, ebx
cmp esi, 2
jne 0x441422
mov edx, dword [esp + 0x34]
lea esi, [eax - 1]
cmp edx, esi
jb 0x44130d
test ecx, ecx
je 0x44130d
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
lea edx, [ecx + esi]
jmp 0x441312
mov edx, 0x4b49e4
cmp byte [edx], 0x62
je 0x4413b9
mov edx, dword [esp + 0x34]
lea esi, [eax - 1]
cmp edx, esi
jb 0x441340
test ecx, ecx
je 0x441340
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
lea edx, [ecx + esi]
jmp 0x441345
mov edx, 0x4b49e4
cmp byte [edx], 0x42
je 0x4413b9
mov edx, dword [esp + 0x34]
lea esi, [eax - 1]
cmp edx, esi
jb 0x44136f
test ecx, ecx
je 0x44136f
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
lea edx, [ecx + esi]
jmp 0x441374
mov edx, 0x4b49e4
cmp byte [edx], 0x71
je 0x4413a8
mov edx, dword [esp + 0x34]
lea esi, [eax - 1]
cmp edx, esi
jb 0x44139e
test ecx, ecx
je 0x44139e
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
lea edx, [ecx + esi]
jmp 0x4413a3
mov edx, 0x4b49e4
cmp byte [edx], 0x51
jne 0x44141e
mov byte [esp + 0x12], 0
mov eax, dword [esp + 0x44]
lea edx, [esp + 0x14]
push edx
push eax
jmp 0x4413c8
mov byte [esp + 0x12], 1
mov edx, dword [esp + 0x44]
lea ecx, [esp + 0x14]
push ecx
push edx
lea ecx, [esp + 0x44]
call fcn.0041f4d0
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
inc eax
cmp eax, edx
mov dword [esp + 0x14], eax
jb 0x440fe5
mov esi, dword [esp + 0x40]
pop ebp
test esi, esi
je 0x441824
mov eax, dword [esp + 0x40]
sub eax, esi
sar eax, 2
je 0x441824
mov eax, dword [esi]
dec eax
cmp eax, edx
mov dword [esp + 0x10], eax
jae 0x441824
mov edi, dword [esp + 0x68]
jmp 0x4417de
mov edx, dword [esp + 0x40]
mov esi, dword [edx]
dec esi
cmp esi, eax
jg 0x4417b6
mov edi, dword [esp + 0x6c]
jmp 0x441437
mov ecx, dword [esp + 0x30]
cmp dword [esp + 0x34], esi
jb 0x441452
test ecx, ecx
je 0x441452
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov eax, dword [esp + 0x30]
add eax, esi
jmp 0x441457
mov eax, 0x4b49e4
mov cl, byte [eax]
mov byte [esp + 0x28], cl
mov ecx, edi
mov edx, dword [esp + 0x28]
push edx
push 1
call fcn.00418c60
mov eax, dword [esp + 0x14]
inc esi
cmp esi, eax
jle 0x441433
jmp 0x4417b6
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
cmp ecx, eax
mov ecx, dword [esp + 0x30]
mov esi, eax
jb 0x4414a5
test ecx, ecx
je 0x4414a5
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
lea edx, [ecx + esi]
jmp 0x4414aa
mov edx, 0x4b49e4
cmp byte [edx], 0x3f
je 0x4413be
mov edx, dword [esp + 0x34]
mov esi, eax
cmp edx, eax
jb 0x4414d7
test ecx, ecx
je 0x4414d7
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
lea edx, [ecx + esi]
jmp 0x4414dc
mov edx, 0x4b49e4
cmp byte [edx], 0x3d
jne 0x4413d9
mov edx, dword [esp + 0x40]
test edx, edx
je 0x4413d9
mov esi, dword [esp + 0x44]
sub esi, edx
sar esi, 2
cmp esi, 4
jb 0x4413d9
mov edx, dword [esp + 0x34]
lea esi, [eax - 1]
cmp edx, esi
jb 0x441528
test ecx, ecx
je 0x441528
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
lea edx, [ecx + esi]
jmp 0x44152d
mov edx, 0x4b49e4
cmp byte [edx], 0x3f
jne 0x4413d9
mov edx, dword [esp + 0x40]
inc eax
test edx, edx
mov byte [esp + 0x13], 1
mov byte [esp + 0x11], 1
mov dword [esp + 0x18], eax
jne 0x441555
mov edi, dword [esp + 0x44]
xor eax, eax
jmp 0x441560
mov edi, dword [esp + 0x44]
mov eax, edi
sub eax, edx
sar eax, 2
mov esi, dword [edx + eax*4 - 4]
mov eax, dword [edx + 8]
sub esi, eax
dec esi
test esi, esi
jg 0x44157e
push edi
push edx
lea ecx, [esp + 0x44]
call fcn.0043a9c0
jmp 0x4413d1
mov al, byte [esp + 0x12]
test al, al
je 0x4416aa
lea ebx, [esi + 1]
push ebx
call fcn.004a2a14
mov ecx, dword [esp + 0x44]
add esp, 4
test ecx, ecx
mov ebp, eax
jne 0x4415a4
xor eax, eax
jmp 0x4415ad
mov eax, dword [esp + 0x44]
sub eax, ecx
sar eax, 2
mov edi, dword [ecx + eax*4 - 4]
mov eax, dword [esp + 0x34]
cmp eax, edi
jb 0x4415d2
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4415d2
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov eax, dword [esp + 0x30]
add eax, edi
jmp 0x4415d7
mov eax, 0x4b49e4
mov byte [eax], 0
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
mov edi, dword [ecx + 8]
inc edi
cmp eax, edi
jb 0x441604
mov eax, dword [esp + 0x30]
test eax, eax
je 0x441604
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov edx, dword [esp + 0x30]
lea eax, [edx + edi]
jmp 0x441609
mov eax, 0x4b49e4
push 0
push 1
push ebx
push ebp
push esi
push eax
call fcn.00418790
add esp, 0x18
test al, al
je 0x44164b
push 0x23
push 0xd
push ebp
call fcn.004859a0
push 0x23
push 0xa
push ebp
call fcn.004859a0
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
add esp, 0x18
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
mov ecx, dword [esp + 0x70]
push ebp
call fcn.0041f750
mov ecx, dword [esp + 0x40]
test ecx, ecx
jne 0x441657
xor eax, eax
jmp 0x441660
mov eax, dword [esp + 0x44]
sub eax, ecx
sar eax, 2
mov esi, dword [ecx + eax*4 - 4]
mov eax, dword [esp + 0x34]
cmp eax, esi
jb 0x441694
mov eax, dword [esp + 0x30]
test eax, eax
je 0x441694
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov eax, dword [esp + 0x30]
push ebp
add eax, esi
mov byte [eax], 0x3f
call fcn.004a2a3d
add esp, 4
jmp 0x4417b6
mov eax, 0x4b49e4
push ebp
mov byte [eax], 0x3f
call fcn.004a2a3d
add esp, 4
jmp 0x4417b6
test edx, edx
jne 0x4416b2
xor eax, eax
jmp 0x4416b9
sub edi, edx
sar edi, 2
mov eax, edi
mov esi, dword [edx + eax*4 - 4]
mov eax, dword [esp + 0x34]
cmp eax, esi
jb 0x4416db
test ecx, ecx
je 0x4416db
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov ecx, dword [esp + 0x30]
lea eax, [ecx + esi]
jmp 0x4416e0
mov eax, 0x4b49e4
mov byte [eax], 0
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
mov esi, dword [edx + 8]
inc esi
cmp eax, esi
jb 0x44170c
mov eax, dword [esp + 0x30]
test eax, eax
je 0x44170c
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov eax, dword [esp + 0x30]
add esi, eax
jmp 0x441711
mov esi, 0x4b49e4
mov cl, byte [esp + 0x6c]
push 0
mov byte [esp + 0x50], cl
lea ecx, [esp + 0x50]
call fcn.00410c90
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
lea ecx, [esp + 0x54]
call fcn.00410d10
lea edx, [esp + 0x4c]
push 0x3d
push edx
mov byte [esp + 0x6c], 2
call fcn.00486c90
mov ecx, dword [esp + 0x48]
add esp, 8
test ecx, ecx
jne 0x44175b
xor eax, eax
jmp 0x441764
mov eax, dword [esp + 0x44]
sub eax, ecx
sar eax, 2
mov esi, dword [ecx + eax*4 - 4]
mov eax, dword [esp + 0x34]
cmp eax, esi
jb 0x441789
mov eax, dword [esp + 0x30]
test eax, eax
je 0x441789
lea ecx, [esp + 0x2c]
call fcn.0041f450
mov eax, dword [esp + 0x30]
add eax, esi
jmp 0x44178e
mov eax, 0x4b49e4
mov byte [eax], 0x3f
mov ecx, dword [0x4b49e8]
push ecx
lea edx, [esp + 0x50]
push 0
push edx
mov ecx, ebp
call fcn.0041f670
push 1
lea ecx, [esp + 0x50]
mov byte [esp + 0x68], 1
call fcn.00410c90
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
push eax
push ecx
lea ecx, [esp + 0x44]
call fcn.0043a9c0
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x6c]
jmp 0x4413d9
mov ecx, dword [esp + 0x2c]
cmp edx, eax
mov esi, eax
jb 0x4417fa
test ecx, ecx
je 0x4417fa
lea ecx, [esp + 0x28]
call fcn.0041f450
mov edx, dword [esp + 0x2c]
lea eax, [edx + esi]
jmp 0x4417ff
mov eax, 0x4b49e4
mov al, byte [eax]
mov byte [esp + 0x68], al
mov ecx, dword [esp + 0x68]
push ecx
push 1
mov ecx, edi
call fcn.00418c60
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x30]
inc eax
cmp eax, edx
mov dword [esp + 0x10], eax
jb 0x4417da
mov edx, dword [esp + 0x3c]
push edx
call fcn.004a2a3d
add esp, 4
xor eax, eax
lea ecx, [esp + 0x28]
mov dword [esp + 0x3c], eax
push 1
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x64], 0xffffffff
call fcn.00410c90
mov ecx, dword [esp + 0x58]
mov al, byte [esp + 0xf]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x58
ret 4