Function at 0x1001e23c
Capabilities:
Inspect section memory permissions
Parse credit card information
Parse pe header

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push edi
push esi
push ebx
sub esp, 0x2f4
mov dword [esp + 0x18], ecx
mov edi, dword [ebp + 8]
movzx eax, byte [ebp + 0xc]
test eax, eax
jne 0x1001e2b2
movzx eax, byte [ebp + 0x10]
test eax, eax
jne 0x1001e2b2
movzx eax, byte [ebp + 0x14]
test eax, eax
jne 0x1001e2b2
mov edx, ecx
mov ecx, dword [edx + 0xac]
push ecx
lea eax, [ecx + 1]
mov dword [edx + 0xac], eax
push 0x10063940
push str._sps_i.ps
push 0x10065e00
call fcn.1004665a
push 0x10054584
push 0x10065e00
call fcn.1004670e
add esp, 0x18
mov edx, dword [esp + 0x18]
mov dword [edx], eax
test eax, eax
je 0x1001ff2d
jmp 0x1001e2cb
mov eax, ecx
mov eax, dword [eax]
test eax, eax
je 0x1001e2c1
push eax
call fcn.1004676d
pop ecx
mov eax, dword [esp + 0x18]
mov dword [eax], 0
mov eax, dword [esp + 0x18]
mov edx, dword [edi]
and edx, 0xffff0000
mov dword [eax + 4], edx
cmp edx, 0xffff0000
jne 0x1001ff1c
mov edx, eax
movzx eax, word [edi]
mov dword [edx + 4], eax
xor ecx, ecx
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x48], ecx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x1c], esi
xor edx, edx
mov dword [esp + 0x40], edx
xor edx, edx
mov dword [esp + 0x3c], edx
xor edx, edx
mov dword [esp + 0x38], edx
xor edx, edx
mov dword [esp + 0x4c], edx
xor edx, edx
mov dword [esp + 0x24], edx
movzx edx, byte [ebp + 0x14]
test edx, edx
je 0x1001e398
mov ecx, dword [esp + 0x18]
xor edx, edx
mov eax, 8
lea ecx, [ecx + 8]
and ecx, 7
je 0x1001e353
test cl, 3
jne 0x1001e37d
mov edx, dword [esp + 0x18]
mov dword [edx + 8], 0
mov eax, 7
mov edx, 1
mov ecx, dword [esp + 0x18]
and eax, 1
neg eax
add eax, 8
pxor mm0, mm0
movq qword [ecx + edx*4 + 8], mm0
add edx, 2
cmp edx, eax
jb 0x1001e35f
mov dword [esp + 0x18], ecx
emms
cmp edx, 8
jae 0x1001ff4f
mov eax, dword [esp + 0x18]
mov dword [eax + edx*4 + 8], 0
add edx, 1
cmp edx, 8
jb 0x1001e381
mov dword [esp + 0x18], eax
mov eax, dword [eax + 4]
xor edx, edx
mov dword [esp + 0x30], edx
xor ecx, ecx
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x34], esi
mov edx, 0xffffffff
mov dword [esp + 0x20], edx
mov edx, 0xffffffff
cmp eax, 0x100
mov dword [esp + 0x14], edx
mov edx, 0
mov dword [esp + 0x2c0], edx
mov dword [esp + 0x2c4], edx
je 0x10021fc0
cmp eax, 0x101
je 0x10021f9f
cmp eax, 0x102
je 0x10021f7e
cmp eax, 0x103
je 0x10021f5d
cmp eax, 0x104
je 0x10021f37
cmp eax, 0x200
je 0x1001e4a8
cmp eax, 0x201
jne 0x1001e451
mov ecx, dword [esp + 0x18]
mov eax, 1
mov dword [esp + 0x30], eax
mov eax, dword [ecx]
mov edx, 1
mov dword [esp + 0x2c], edx
test eax, eax
je 0x1001e4e0
push eax
push str.ps_2_x_n
call fcn.100468f6
add esp, 8
jmp 0x1001e4e0
cmp eax, 0x300
jne 0x1001e48d
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x1001e470
push eax
push str.ps_3_0_n
call fcn.100468f6
add esp, 8
mov eax, 1
mov dword [esp + 0x30], eax
mov edx, 1
mov ecx, 1
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], ecx
jmp 0x1001e4e0
mov edx, dword [esp + 0x18]
mov edx, dword [edx]
test edx, edx
je 0x1001e4e0
push eax
push str.unknown_ps__x_n
push edx
call fcn.10046d47
add esp, 0xc
jmp 0x1001e4e0
movzx ecx, byte [ebp + 0x14]
mov eax, 1
mov dword [esp + 0x30], eax
mov edx, 1
test ecx, ecx
mov dword [esp + 0x2c], edx
je 0x1001e4c8
mov dword [edi], 0xffff0201
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x1001e4e0
push eax
push str.ps_2_0_n
call fcn.100468f6
add esp, 8
movzx eax, byte [ebp + 0x14]
test eax, eax
je 0x1001e500
mov eax, dword [esp + 0x2c]
mov edx, 1
cmp eax, 0
mov ecx, 0
cmove ecx, edx
mov dword [esp + 0x24], ecx
movzx eax, byte [ebp + 0x14]
test eax, eax
jne 0x1001febc
mov ecx, dword [esp + 0x18]
xor eax, eax
mov edx, 0x20
lea ecx, [ecx + 0x2c]
and ecx, 7
je 0x1001e539
test cl, 3
jne 0x1001e55f
mov eax, dword [esp + 0x18]
mov dword [eax + 0x2c], 0
mov edx, 0x1f
mov eax, 1
mov ecx, dword [esp + 0x18]
and edx, 1
neg edx
add edx, 0x20
pxor mm0, mm0
movq qword [ecx + eax*4 + 0x2c], mm0
add eax, 2
cmp eax, edx
jb 0x1001e545
mov dword [esp + 0x18], ecx
emms
cmp eax, 0x20
jae 0x1001e577
mov edx, dword [esp + 0x18]
mov dword [edx + eax*4 + 0x2c], 0
add eax, 1
cmp eax, 0x20
jb 0x1001e563
mov dword [esp + 0x18], edx
mov esi, 1
lea ebx, [edi + 4]
mov eax, dword [ebx]
cmp eax, 0xffff
je 0x1001fdfc
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x18]
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x18]
xor eax, eax
test esi, esi
mov esi, 1
je 0x1001fed1
mov esi, eax
mov eax, dword [edx + esi*4 + 0x2c]
test eax, eax
jne 0x1001fedf
mov ebx, dword [esp + 0x20]
jmp 0x1001fee1
mov ebx, esi
mov edi, dword [esp + 0x18]
test eax, eax
je 0x1001fefa
call fcn.10046638
test al, 1
je 0x1001fefa
cmp ebx, esi
jne 0x10021e86
add esi, 1
cmp esi, 0x20
jge 0x10021f27
mov eax, dword [edi + esi*4 + 0x2c]
test eax, eax
je 0x1001fee5
cmp ebx, 0xffffffff
jne 0x1001fee5
mov dword [esp + 0x18], edi
mov edi, dword [ebp + 8]
jmp 0x1001fedf
xor eax, eax
add esp, 0x2f4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret 0x10
push 0x10
push 0x1005456c
push str.fopen
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
push eax
push eax
call fcn.100468bc
jmp 0x1001e2cb
mov eax, ecx
mov eax, dword [eax + 4]
jmp 0x1001e398
mov dword [esp + 0x20], ebx
mov dword [esp + 0x18], edi
mov edi, dword [ebp + 8]
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x10021ec2
mov eax, dword [esp + 0x20]
cmp eax, 0xffffffff
je 0x10021eb4
mov eax, dword [esp + 0x14]
cmp eax, 0xffffffff
jne 0x1001e577
mov eax, 1
mov dword [esp + 0x1c], eax
jmp 0x1001e577
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
xor edx, edx
test eax, eax
mov eax, 1
je 0x10021ed7
mov eax, edx
mov ebx, dword [ecx + eax*4 + 0x2c]
test ebx, ebx
jne 0x10021ee5
mov edx, dword [esp + 0x20]
jmp 0x10021ef7
mov edx, dword [esp + 0x20]
cmp edx, eax
je 0x10021ef7
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], eax
jmp 0x10021e9e
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
add eax, 1
cmp eax, 0x20
jge 0x10021f1a
mov ecx, dword [esi + eax*4 + 0x2c]
test ecx, ecx
je 0x10021eff
cmp ebx, 0xffffffff
jne 0x10021eff
mov dword [esp + 0x18], esi
jmp 0x10021ee9
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], esi
jmp 0x10021e9e
mov dword [esp + 0x20], ebx
mov dword [esp + 0x18], edi
mov edi, dword [ebp + 8]
jmp 0x10021e95
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x10021f4f
push eax
push str.ps_1_4_n
call fcn.100468f6
add esp, 8
mov eax, 1
mov dword [esp + 0x30], eax
jmp 0x1001e4e0
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x1001e4e0
push eax
push str.ps_1_3_n
call fcn.100468f6
add esp, 8
jmp 0x1001e4e0
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x1001e4e0
push eax
push str.ps_1_2_n
call fcn.100468f6
add esp, 8
jmp 0x1001e4e0
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x1001e4e0
push eax
push str.ps_1_1_n
call fcn.100468f6
add esp, 8
jmp 0x1001e4e0
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x1001e4e0
push eax
push str.ps_1_0_n
call fcn.100468f6
add esp, 8
jmp 0x1001e4e0