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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x110
push ebx
push esi
xor ebx, ebx
push edi
mov edi, dword [ebp + 8]
cmp dword [edi + 0x1c], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], ebx
je 0x10004175
cmp dword [ebp + 0xc], ebx
jne 0x10004175
xor eax, eax
jmp 0x10004178
xor eax, eax
inc eax
lea esi, [edi + 0x109e0]
push esi
mov dword [edi + 0x7c], eax
mov dword [edi + 0x10b70], ebx
mov dword [edi + 0x10b74], ebx
call fcn.10010080
cmp dword [ebp + 0xc], 0
pop ecx
mov dword [edi + 0x10b78], eax
je 0x10004233
mov eax, esi
jmp 0x100041b7
cmp byte [eax], 0x5c
jne 0x100041b0
mov byte [eax], 0x2f
push eax
call fcn.100114d0
pop ecx
cmp byte [eax], 0
jne 0x100041a8
lea esi, [edi + 0x109e0]
mov al, byte [esi]
cmp al, 0x2f
mov ebx, esi
jne 0x100041e4
mov dword [edi + 0x10b74], 1
mov byte [ebp - 0x110], al
mov byte [ebp - 0x10f], 0
inc ebx
jmp 0x10004233
movzx eax, al
push eax
call int.1001010b
test eax, eax
pop ecx
je 0x10004233
cmp byte [edi + 0x109e1], 0x3a
jne 0x10004233
mov dword [edi + 0x10b74], 1
mov al, byte [ebx]
inc ebx
mov byte [ebp - 0x110], al
mov al, byte [ebx]
inc ebx
cmp byte [ebx], 0x2f
mov byte [ebp - 0x10f], al
lea eax, [ebp - 0x10e]
jne 0x10004230
mov byte [ebp - 0x10e], 0x2f
lea eax, [ebp - 0x10d]
inc ebx
mov byte [eax], 0
push 1
lea eax, [ebp - 0x110]
push eax
push edi
call fcn.10003a67
add esp, 0xc
test eax, eax
mov dword [ebp - 4], eax
jne 0x100046b4
cmp dword [ebp + 0xc], 0
mov byte [ebp - 0x110], al
lea eax, [ebp - 0x110]
mov dword [ebp + 8], eax
jne 0x10004280
cmp dword [edi + 0x24], 0
je 0x10004277
push 0x2f
push esi
call fcn.100110a8
pop ecx
pop ecx
mov ebx, eax
test ebx, ebx
jne 0x1000427f
mov ebx, esi
jmp 0x10004280
inc ebx
movzx esi, byte [ebx]
test esi, esi
je 0x10004448
cmp esi, 0x3b
ja 0x1000438b
je 0x1000437c
mov eax, esi
sub eax, 0x20
je 0x1000435d
dec eax
dec eax
je 0x100043d7
sub eax, 8
je 0x100043d7
sub eax, 5
je 0x100042c3
sub eax, 0xb
jmp 0x100043a2
mov eax, dword [ebp + 8]
lea esi, [ebp - 0x110]
mov byte [eax], 0
call fcn.1000325f
mov eax, esi
push 0x1001c60c
push eax
call fcn.10011020
test eax, eax
pop ecx
pop ecx
jne 0x100042ef
mov byte [ebp - 0x110], al
jmp 0x1000434b
cmp dword [edi + 0x64], 0
jne 0x10004319
lea eax, [ebp - 0x110]
push 0x1001c5dc
push eax
call fcn.10011020
test eax, eax
pop ecx
pop ecx
jne 0x10004319
mov byte [ebp - 0x110], al
mov dword [ebp - 0xc], 1
cmp byte [ebp - 0x110], 0
je 0x1000434b
push 2
lea eax, [ebp - 0x110]
push eax
push edi
call fcn.10003a67
mov ecx, eax
and ecx, 0x7f00
add esp, 0xc
cmp ecx, 0x100
mov dword [ebp - 4], eax
jg 0x100046b4
and dword [ebp - 8], 0
lea eax, [ebp - 0x110]
mov dword [ebp + 8], eax
jmp 0x100043e0
cmp dword [edi + 0x3c], 0
jne 0x100043d7
lea eax, [edi + 0x109e0]
mov ecx, edi
call fcn.10002f05
test eax, eax
jne 0x100043d7
mov eax, dword [ebp + 8]
mov byte [eax], 0x20
jmp 0x100043dd
mov eax, dword [ebp + 8]
mov dword [ebp - 8], eax
mov byte [eax], 0x3b
inc eax
mov dword [ebp + 8], eax
jmp 0x100043e0
cmp esi, 0x3c
je 0x100043d7
cmp esi, 0x3d
jbe 0x100043a4
cmp esi, 0x3f
jbe 0x100043d7
cmp esi, 0x5c
je 0x100043d7
cmp esi, 0x7c
je 0x100043d7
push esi
call fcn.100101be
test eax, eax
pop ecx
jne 0x100043b4
cmp esi, 0x7f
jb 0x100043e0
push dword [0x100235e0]
push ebx
call fcn.10011447
push eax
push ebx
push dword [ebp + 8]
call fcn.10010260
push dword [ebp + 8]
call fcn.100114d0
add esp, 0x18
jmp 0x10004386
mov eax, dword [ebp + 8]
mov byte [eax], 0x5f
inc dword [ebp + 8]
push ebx
call fcn.100114d0
mov ebx, eax
movzx esi, byte [ebx]
test esi, esi
pop ecx
jne 0x1000428b
cmp dword [ebp - 0xc], esi
je 0x10004448
cmp dword [edi + 0x38], esi
jne 0x10004448
push 0
lea eax, [edi + 0x88dc]
push eax
lea eax, [edi + 0x109e0]
push eax
lea esi, [edi + 0x8dc]
call fcn.10005bbd
push eax
push 0x1001c8d8
push esi
call fcn.1001059d
add esp, 0x14
push eax
push esi
push edi
call dword [edi + 0x10b44]
test dword [ebp - 4], 0xffff80ff
jne 0x10004448
mov eax, dword [ebp - 4]
and eax, 0x7f00
or eax, 1
mov dword [ebp - 4], eax
push dword [edi + 0x10b78]
lea esi, [edi + 0x109e0]
push esi
call fcn.10008a26
cmp byte [eax], 0x2f
pop ecx
pop ecx
jne 0x1000457e
push 4
push esi
push edi
call fcn.10003a67
xor eax, eax
add esp, 0xc
cmp dword [edi + 0x10b70], eax
je 0x10004514
cmp dword [edi + 0x38], eax
jne 0x100044b0
push eax
lea eax, [edi + 0x88dc]
push eax
push esi
lea ebx, [edi + 0x8dc]
call fcn.10005bbd
push eax
push 0x1001c8c4
push ebx
call fcn.1001059d
add esp, 0x14
push eax
push ebx
push edi
call dword [edi + 0x10b44]
mov eax, dword [edi + 0x8d8]
mov eax, dword [eax + 0x14]
test al, 0x6f
je 0x10004502
and eax, 0x7f
push eax
push esi
call dword [0x1001c0a0]
test eax, eax
jne 0x10004502
push 1
lea eax, [edi + 0x88dc]
push eax
push esi
lea ebx, [edi + 0x8dc]
call fcn.10005bbd
pop ecx
pop ecx
push eax
call dword [0x1001c0e4]
push eax
push 0x1001c88c
push ebx
call fcn.1001059d
add esp, 0x10
push eax
push ebx
push edi
call dword [edi + 0x10b44]
mov eax, dword [ebp - 4]
and eax, 0xffff90ff
or eax, 0x1000
jmp 0x100046b4
cmp dword [edi + 0x78], 1
jne 0x1000456c
mov eax, dword [edi + 0x8d8]
mov eax, dword [eax + 0x14]
test al, 0x6f
je 0x1000456c
and eax, 0x7f
push eax
push esi
call dword [0x1001c0a0]
test eax, eax
jne 0x1000456c
push 1
lea eax, [edi + 0x88dc]
push eax
push esi
lea ebx, [edi + 0x8dc]
call fcn.10005bbd
pop ecx
pop ecx
push eax
call dword [0x1001c0e4]
push eax
push 0x1001c88c
push ebx
call fcn.1001059d
add esp, 0x10
push eax
push ebx
push edi
call dword [edi + 0x10b44]
mov eax, dword [ebp - 4]
and eax, 0xffff82ff
or eax, 0x200
jmp 0x100046b4
mov eax, dword [ebp + 8]
mov byte [eax], 0
cmp dword [edi + 0x54], 0
jne 0x100045ab
mov ebx, dword [ebp - 8]
test ebx, ebx
je 0x100045ab
lea esi, [ebx + 1]
jmp 0x10004597
inc esi
movzx eax, byte [esi]
push eax
call fcn.10010184
test eax, eax
pop ecx
jne 0x10004596
cmp byte [esi], al
jne 0x100045ab
mov byte [ebx], al
lea esi, [ebp - 0x110]
call fcn.1000325f
cmp byte [ebp - 0x110], 0
jne 0x100045ee
push 1
lea eax, [edi + 0x88dc]
push eax
lea eax, [edi + 0x109e0]
push eax
lea esi, [edi + 0x8dc]
call fcn.10005bbd
push eax
push 0x1001c868
push esi
call fcn.1001059d
add esp, 0x14
jmp 0x10004699
push 3
lea eax, [ebp - 0x110]
push eax
push edi
call fcn.10003a67
push 4
lea ebx, [edi + 0x109e0]
push ebx
push edi
call fcn.10003a67
mov eax, dword [edi + 0x8d8]
add esp, 0x18
test byte [eax + 0x18], 0x20
je 0x100046b1
mov al, byte [edi + 0x10b7c]
add al, 0x60
mov byte [ebp + 0xc], al
lea eax, [ebp + 0xd]
push 0x1001c864
push eax
call fcn.1000fec0
cmp dword [edi + 0x38], 0
pop ecx
pop ecx
jne 0x10004671
push 0
lea eax, [edi + 0x88dc]
push eax
push ebx
lea esi, [edi + 0x8dc]
call fcn.10005bbd
push eax
lea eax, [ebp + 0xc]
push eax
push 0x1001c850
push esi
call fcn.1001059d
add esp, 0x18
push eax
push esi
push edi
call dword [edi + 0x10b44]
push ebx
lea eax, [ebp + 0xc]
push eax
call dword [0x1001c0ac]
test eax, eax
jne 0x1000456c
push 1
lea esi, [edi + 0x8dc]
push 0x1001c828
push esi
call fcn.1001059d
pop ecx
pop ecx
push eax
push esi
push edi
call dword [edi + 0x10b44]
mov eax, dword [ebp - 4]
and eax, 0xffff83ff
or eax, 0x300
jmp 0x100046b4
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
leave
ret