Function at 0x40fa20
Capabilities:
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x448547
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x70
push ebx
push ebp
mov ebx, ecx
push esi
push edi
lea ecx, [esp + 0x6c]
call fcn.004106e0
xor edi, edi
lea ecx, [esp + 0x2c]
push edi
push edi
push 1
push edi
mov dword [esp + 0x98], edi
call fcn.0040dca0
lea ebp, [ebx + 0xa8]
push eax
mov ecx, ebp
call fcn.0040dd00
test eax, eax
jne 0x40fc1a
mov eax, dword [ebx + 0xac]
cmp eax, edi
jne 0x40fb19
push edi
push edi
push 1
push 0x7b
lea ecx, [esp + 0x2c]
lea esi, [ebx + 0xb8]
call fcn.0040dca0
push eax
mov ecx, esi
call fcn.0040dd00
test eax, eax
jne 0x40fc7f
push edi
push edi
push 1
push 0x3f
lea ecx, [esp + 0x4c]
call fcn.0040dca0
push eax
mov ecx, esi
call fcn.0040dd00
test eax, eax
jne 0x40fc7f
push edi
push edi
push 1
push 0x2a
lea ecx, [esp + 0x5c]
call fcn.0040dca0
push eax
mov ecx, esi
call fcn.0040dd00
test eax, eax
jne 0x40fc7f
push edi
push edi
push 1
push 0x2b
lea ecx, [esp + 0x6c]
call fcn.0040dca0
push eax
mov ecx, esi
call fcn.0040dd00
test eax, eax
jne 0x40fc7f
mov al, byte [ebp]
push 1
lea ecx, [esp + 0x17]
push 1
mov byte [esp + 0x1b], al
push ecx
jmp 0x40fbec
cmp eax, 1
jne 0x40fbfc
mov al, byte [ebp]
cmp al, 0x29
je 0x40fc1a
cmp al, 0x7c
je 0x40fc1a
cmp dword [esp + 0x74], edi
jg 0x40fc24
cmp al, 0x28
je 0x40fcaa
cmp al, 0x5b
je 0x40fcdd
cmp al, 0x2e
je 0x40fcdd
cmp al, 0x77
je 0x40fcdd
cmp al, 0x57
je 0x40fcdd
cmp al, 0x73
je 0x40fcdd
cmp al, 0x53
je 0x40fcdd
cmp al, 0x64
je 0x40fcdd
cmp al, 0x44
je 0x40fcdd
cmp al, 0x5e
je 0x40fccc
cmp al, 0x24
je 0x40fccc
cmp al, 0x41
je 0x40fccc
cmp al, 0x5a
je 0x40fccc
cmp al, 0x7a
je 0x40fccc
cmp al, 0x62
je 0x40fccc
cmp al, 0x42
je 0x40fccc
cmp al, 0x47
je 0x40fccc
cmp al, 0x5c
je 0x40fcbb
cmp al, 0x6b
je 0x40fcbb
cmp al, 0x67
je 0x40fcbb
push 1
lea edx, [esp + 0x17]
push 1
mov byte [esp + 0x1b], al
push edx
lea ecx, [esp + 0x78]
call fcn.00414d60
mov ecx, ebx
call fcn.004103b0
push edi
push edi
push 1
push edi
lea ecx, [esp + 0x3c]
call fcn.0040dca0
push eax
mov ecx, ebp
call fcn.0040dd00
test eax, eax
je 0x40fa74
cmp dword [esp + 0x74], edi
jle 0x40fcfb
push 0x20
call fcn.004405c5
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, edi
mov byte [esp + 0x88], 1
je 0x40fcee
mov esi, dword [esp + 0x78]
cmp esi, edi
jne 0x40fc4f
mov esi, 0x44bb78
mov ecx, dword [esp + 0x90]
mov edx, dword [ecx]
mov ecx, edx
and edx, 0x10
and ecx, 8
push ecx
push edx
mov edx, dword [esp + 0x7c]
mov ecx, eax
push edx
push esi
call fcn.00414e00
mov esi, eax
lea ecx, [ebx + 0x14]
push esi
call fcn.0040f840
jmp 0x40fd05
cmp dword [esp + 0x74], edi
jne 0x40fc1e
mov al, byte [ebp]
push 1
lea ecx, [esp + 0x17]
push 1
push ecx
lea ecx, [esp + 0x78]
mov byte [esp + 0x1f], al
call fcn.00414d60
mov ecx, ebx
call fcn.004103b0
jmp 0x40fc1a
mov edx, dword [esp + 0x90]
mov ecx, ebx
push edx
call fcn.00411d00
jmp 0x40fd03
mov eax, dword [esp + 0x90]
mov ecx, ebx
push eax
call fcn.004144e0
jmp 0x40fd03
mov ecx, dword [esp + 0x90]
push ecx
mov ecx, ebx
call fcn.00414200
jmp 0x40fd03
mov edx, dword [esp + 0x90]
mov ecx, ebx
push edx
call fcn.00410f50
jmp 0x40fd03
xor esi, esi
lea ecx, [ebx + 0x14]
push esi
call fcn.0040f840
jmp 0x40fd05
push edi
mov ecx, ebx
call fcn.0040eba0
mov esi, eax
lea ecx, [esp + 0x6c]
mov dword [esp + 0x88], 0xffffffff
call fcn.0040f780
mov eax, dword [ebx + 0xac]
mov dword [esp + 0x18], esi
cmp eax, edi
je case.0x40fd47.46
movsx eax, byte [ebp]
add eax, 0xffffffd6
mov dword [esp + 0x14], edi
cmp eax, 0x51
ja case.0x40fd47.46
xor ecx, ecx
mov cl, byte [eax + 0x410334]
jmp dword [ecx*4 + 0x410320]
xor esi, esi
lea ecx, [esp + 0x6c]
push esi
push esi
call fcn.00410390
mov dword [esp + 0x6c], 0x44bb74
mov dword [esp + 0x7c], esi
mov dword [esp + 0x78], esi
lea eax, [ebx + 0xa8]
lea edi, [ebx + 0x98]
mov edx, eax
mov ecx, edi
lea ebp, [ebx + 0xc8]
mov dword [esp + 0x88], 2
mov esi, dword [edx]
mov dword [ecx], esi
mov esi, dword [edx + 4]
mov dword [ecx + 4], esi
mov esi, dword [edx + 8]
mov dword [ecx + 8], esi
lea esi, [ebx + 0xb8]
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
mov ecx, esi
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, ebp
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [edx]
mov eax, esi
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [eax + 8], ecx
mov ecx, ebx
mov dword [eax + 0xc], edx
call fcn.0040dd30
test eax, eax
jne 0x40fdf0
mov ecx, ebx
call fcn.0040dd30
test eax, eax
je 0x40fde5
xor eax, eax
lea ecx, [ebx + 0xa8]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
lea eax, [esp + 0x1c]
mov byte [esp + 0x1c], 0
push eax
mov dword [esp + 0x24], 1
call fcn.0040dd00
test eax, eax
jne 0x40ff0b
lea ecx, [esp + 0x2c]
xor eax, eax
push ecx
lea ecx, [ebx + 0xa8]
mov byte [esp + 0x30], 0x7d
mov dword [esp + 0x34], 1
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
call fcn.0040dd00
test eax, eax
jne 0x40ff0b
mov dl, byte [ebx + 0xa8]
push 1
lea eax, [esp + 0x94]
push 1
push eax
lea ecx, [esp + 0x78]
mov byte [esp + 0x9c], dl
call fcn.00414d60
lea eax, [ebx + 0xa8]
mov ecx, edi
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, esi
lea eax, [ebx + 0xa8]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, ebp
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [edx]
mov eax, esi
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [eax + 8], ecx
mov ecx, ebx
mov dword [eax + 0xc], edx
call fcn.0040dd30
test eax, eax
jne 0x40fedc
mov ecx, ebx
call fcn.0040dd30
test eax, eax
je 0x40fed1
xor eax, eax
lea ecx, [ebx + 0xa8]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
lea eax, [esp + 0x1c]
mov byte [esp + 0x1c], 0
push eax
mov dword [esp + 0x24], 1
call fcn.0040dd00
test eax, eax
je 0x40fe1f
lea eax, [ebx + 0xa8]
mov ecx, eax
mov edx, dword [ecx]
mov dword [edi], edx
mov edx, dword [ecx + 4]
mov dword [edi + 4], edx
mov edx, dword [ecx + 8]
mov dword [edi + 8], edx
mov edx, esi
mov ecx, dword [ecx + 0xc]
mov dword [edi + 0xc], ecx
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov dword [eax + 8], ecx
mov ecx, dword [ebp + 4]
mov edx, dword [edx + 0xc]
mov dword [eax + 0xc], edx
mov eax, dword [ebp]
mov edx, dword [ebp + 8]
mov dword [esi], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 4], ecx
mov dword [esi + 8], edx
mov ecx, ebx
mov dword [esi + 0xc], eax
call fcn.0040dd30
test eax, eax
jne 0x40ff6e
mov ecx, ebx
call fcn.0040dd30
test eax, eax
je 0x40ff63
mov esi, dword [esp + 0x78]
test esi, esi
jne 0x40ff7b
mov esi, 0x44bb78
mov al, byte [esi]
xor edi, edi
test al, al
je 0x40ff9d
movsx ecx, byte [edi + esi]
push ecx
call fcn.0041e27a
add esp, 4
test eax, eax
je 0x40ff9d
mov al, byte [edi + esi + 1]
inc edi
test al, al
jne 0x40ff83
mov al, byte [edi + esi]
cmp al, 0x30
jl 0x410004
cmp al, 0x39
jg 0x410004
lea ecx, [edi + 3]
xor ebp, ebp
cmp edi, ecx
mov dword [esp + 0x14], ebp
jae 0x40ffd4
mov al, byte [edi + esi]
cmp al, 0x30
jl 0x40ffd0
cmp al, 0x39
jg 0x40ffd0
movsx eax, al
lea edx, [ebp + ebp*4]
inc edi
cmp edi, ecx
lea ebp, [eax + edx*2 - 0x30]
jb 0x40ffb5
mov dword [esp + 0x14], ebp
mov al, byte [edi + esi]
test al, al
je 0x40fff4
movsx ecx, al
push ecx
call fcn.0041e27a
add esp, 4
test eax, eax
je 0x40fff4
mov al, byte [edi + esi + 1]
inc edi
test al, al
jne 0x40ffdb
mov al, byte [esi + edi]
add esi, edi
cmp al, 0x2c
je 0x41004d
mov eax, 1
jmp 0x41000a
mov ebp, dword [esp + 0x14]
xor eax, eax
cmp eax, 2
mov edi, ebp
jne 0x410020
mov edi, 0x7fffffff
mov eax, dword [esp + 0x14]
cmp edi, eax
jae 0x410020
mov edi, eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x88], 0xffffffff
test eax, eax
mov dword [esp + 0x6c], 0x44bb74
je 0x4101d1
push eax
call fcn.0041dc55
add esp, 4
jmp 0x4101d1
mov al, byte [esi + 1]
inc esi
xor ebp, ebp
test al, al
je 0x410071
movsx edx, byte [esi + ebp]
push edx
call fcn.0041e27a
add esp, 4
test eax, eax
je 0x410071
mov al, byte [esi + ebp + 1]
inc ebp
test al, al
jne 0x410057
mov al, byte [esi + ebp]
cmp al, 0x30
jl 0x410011
cmp al, 0x39
jg 0x410011
lea edx, [ebp + 3]
xor edi, edi
cmp ebp, edx
mov eax, ebp
jae 0x4100a3
mov cl, byte [eax + esi]
cmp cl, 0x30
jl 0x4100a3
cmp cl, 0x39
jg 0x4100a3
movsx ecx, cl
lea edi, [edi + edi*4]
inc eax
cmp eax, edx
lea edi, [ecx + edi*2 - 0x30]
jb 0x410087
add esi, eax
cmp byte [esi], 0
je 0x410016
movsx edx, byte [esi]
push edx
call fcn.0041e27a
add esp, 4
test eax, eax
je 0x410016
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x4100ae
jmp 0x410016
mov ecx, ebp
lea eax, [ebx + 0x98]
mov dword [esp + 0x14], edi
mov edi, 1
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
lea eax, [ebx + 0xb8]
mov edx, eax
mov ecx, dword [edx]
mov dword [ebp], ecx
mov ecx, dword [edx + 4]
mov dword [ebp + 4], ecx
mov ecx, dword [edx + 8]
mov dword [ebp + 8], ecx
lea ecx, [ebx + 0xc8]
mov edx, dword [edx + 0xc]
mov dword [ebp + 0xc], edx
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, ebx
call fcn.0040dd30
test eax, eax
jne 0x410159
mov ecx, ebx
call fcn.0040dd30
test eax, eax
je 0x41013c
jmp 0x410159
mov dword [esp + 0x14], edi
mov ecx, ebx
mov edi, 0x7fffffff
call fcn.004103b0
push 0
push 0
push 1
push 0x3f
lea ecx, [esp + 0x6c]
call fcn.0040dca0
lea esi, [ebx + 0xa8]
push eax
mov ecx, esi
call fcn.0040dd00
test eax, eax
je 0x41026b
mov ecx, ebx
call fcn.004103b0
push 0x10
call fcn.004405c5
add esp, 4
mov dword [esp + 0x90], eax
test eax, eax
mov dword [esp + 0x88], 4
je 0x4102fb
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push edi
push ecx
push edx
mov ecx, eax
call fcn.00410800
mov esi, eax
jmp 0x4102fd
mov dword [esp + 0x14], 1
jmp 0x41014d
test edi, edi
jne 0x4101e2
push edi
mov ecx, ebx
call fcn.0040eba0
jmp 0x410308
mov ebp, dword [esp + 0x14]
cmp ebp, edi
jne 0x410159
push 0
push 0
push 1
push 0x3f
lea ecx, [esp + 0x6c]
call fcn.0040dca0
lea esi, [ebx + 0xa8]
push eax
mov ecx, esi
call fcn.0040dd00
test eax, eax
jne 0x41022c
push eax
push eax
push 1
push 0x2b
lea ecx, [esp + 0x6c]
call fcn.0040dca0
push eax
mov ecx, esi
call fcn.0040dd00
test eax, eax
je 0x410233
mov ecx, ebx
call fcn.004103b0
push 0xc
call fcn.004405c5
add esp, 4
mov dword [esp + 0x90], eax
test eax, eax
mov dword [esp + 0x88], 3
je 0x4102fb
mov edx, dword [esp + 0x18]
push ebp
push edx
mov ecx, eax
call fcn.00410700
mov esi, eax
jmp 0x4102fd
push 0
push 0
push 1
push 0x2b
lea ecx, [esp + 0x6c]
call fcn.0040dca0
push eax
mov ecx, esi
call fcn.0040dd00
test eax, eax
je 0x4102c5
mov ecx, ebx
call fcn.004103b0
push 0x10
call fcn.004405c5
add esp, 4
mov dword [esp + 0x90], eax
test eax, eax
mov dword [esp + 0x88], 5
je 0x4102fb
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push edi
push ecx
push edx
mov ecx, eax
call fcn.00410d50
mov esi, eax
jmp 0x4102fd
push 0x10
call fcn.004405c5
add esp, 4
mov dword [esp + 0x90], eax
test eax, eax
mov dword [esp + 0x88], 6
je 0x4102fb
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push edi
push ecx
push edx
mov ecx, eax
call fcn.00410ad0
mov esi, eax
jmp 0x4102fd
xor esi, esi
push esi
lea ecx, [ebx + 0x14]
call fcn.0040f840
mov eax, esi
mov ecx, dword [esp + 0x80]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x7c
ret 4