Function at 0x1003ff98
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x1006058c
push eax
mov dword fs:[0], esp
sub esp, 0x118
cmp byte [ebp + 8], 0
push ebx
push esi
push edi
je 0x1004067a
cmp byte [ebp + 0x14], 0
je 0x100405a9
mov esi, dword [ebp + 0x1c]
mov eax, dword [esi]
cmp eax, dword [esi + 4]
je 0x1004059b
lea eax, [esp + 0x88]
xor ebx, ebx
push eax
push 0x1000
lea ecx, [esp + 0x50]
mov dword [esp + 0x90], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
call fcn.10014c04
mov dword [esp + 0x12c], ebx
mov eax, dword [esp + 0x4c]
sub eax, dword [esp + 0x48]
push dword [esp + 0x48]
sar eax, 1
push eax
push 0x9df2
push 0xa04d
call fcn.1003b09d
pop ecx
pop ecx
call eax
push dword [esp + 0x48]
lea ecx, [esp + 0x5c]
call fcn.1002008b
push 0xa2a8
mov byte [esp + 0x130], 1
call fcn.10014455
cmp dword [esp + 0x70], 8
pop ecx
movzx edi, ax
lea ecx, [esp + 0x58]
cmovae ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x10], edi
cmp word [ecx + eax*2 - 2], di
je 0x100400a7
push 0x20d5
push 1
push 0x1ef9
push 0x3b49
push 0x6a83
lea eax, [esp + 0x24]
mov dl, 1
push eax
lea eax, [esp + 0x70]
xor cl, cl
push eax
push 0x57a5
call fcn.1003fa8a
mov edi, dword [esp + 0x30]
add esp, 0x20
push ecx
lea ecx, [esp + 0x5c]
call fcn.10040705
cmp dword [esp + 0x70], 8
lea eax, [esp + 0x5c]
pop ecx
cmovae eax, dword [esp + 0x58]
push ebx
push eax
push 0x9df2
push 0x6ed6
call fcn.1003b09d
pop ecx
pop ecx
call eax
push edi
push ecx
lea ecx, [esp + 0x60]
call fcn.1003c332
push 0x8d1
push 1
push esi
push 0x5f08
lea eax, [esp + 0x34]
mov dword [esp + 0x34], ebx
push eax
push 0x17dc
mov dl, 1
push 0x33e3
push 0x6bbd
mov cl, dl
call fcn.1003fa8a
add esp, 0x20
mov byte [esp + 0x17], bl
mov dword [esp + 0x10], ebx
mov dword [esp + 0x2c], 0x4b007d03
mov dword [esp + 0x30], 0x1d015602
mov word [esp + 0x34], 0x4002
mov byte [esp + 0x36], 0xb5
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x90]
call fcn.10003866
push 0x10
pop edx
lea ecx, [esp + 0xf0]
mov byte [esp + 0x12c], 2
call fcn.10001c1c
push ecx
push ecx
lea eax, [esp + 0xf8]
mov byte [esp + 0x134], 3
push eax
lea edx, [esp + 0x98]
call fcn.1003fae1
add esp, 0xc
mov ecx, ebx
mov dword [esp + 0x44], ecx
push 0x65
pop eax
push 2
mov word [esp + 0x86], ax
pop esi
cmp esi, 8
jne 0x100401a3
push 3
pop ecx
push 9
mov dword [esp + 0x48], ecx
pop esi
jmp 0x1004020a
movzx edx, byte [esp + esi + 0x2d]
mov eax, esi
sub eax, ecx
push 0x2b9c
push 1
push 0x699
movzx eax, byte [esp + eax + 0x36]
movzx ecx, word [esp + eax*2 + 0x88]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [esp + esi + 0x38]
add ecx, edx
mov edx, 0x4bd1
mov word [esp + eax*2 + 0x88], cx
lea eax, [esp + 0x50]
push eax
push 0x7734
push 0x1e13
push 0x1728
push 1
push 0x6e43
mov cl, 1
call fcn.1003fb22
mov ecx, dword [esp + 0x68]
add esp, 0x24
add esi, 2
cmp esi, 0xb
jb 0x10040192
xor eax, eax
mov dword [esp + 0xec], 7
mov word [esp + 0x84], ax
lea ecx, [esp + 0xd8]
mov word [esp + 0xd8], ax
lea eax, [esp + 0x7c]
push eax
mov dword [esp + 0xec], ebx
call fcn.100202ec
push ecx
push ecx
lea eax, [esp + 0xe0]
mov byte [esp + 0x134], 4
push eax
lea ecx, [esp + 0x98]
call fcn.10024833
push ebx
push 1
lea ecx, [esp + 0xe0]
mov byte [esp + 0x134], 3
call fcn.10003f0d
xor eax, eax
lea edi, [esp + 0x7c]
cmp dword [esp + 0xa0], 8
stosd dword es:[edi], eax
push ebx
push 0x80
push 2
stosd dword es:[edi], eax
push ebx
push ebx
push 0x40000000
stosw word es:[edi], ax
lea eax, [esp + 0xa4]
cmovae eax, dword [esp + 0xa4]
mov edi, 0x9df2
push eax
push edi
push 0x4ddc
call fcn.1003b09d
pop ecx
pop ecx
call eax
mov esi, eax
cmp esi, 0xffffffff
je 0x10040305
push ebx
lea eax, [esp + 0xc0]
push eax
push dword [esp + 0x2c]
mov eax, dword [ebp + 0x1c]
push dword [eax]
push esi
push edi
push 0x8b1a
call fcn.1003b09d
pop ecx
pop ecx
call eax
push esi
test eax, eax
push edi
push 0x8fd0
setne bl
call fcn.1003b09d
pop ecx
pop ecx
call eax
test bl, bl
jne 0x1004034e
xor ebx, ebx
push ebx
push 1
lea ecx, [esp + 0xf8]
call fcn.10003f0d
push ebx
push 1
lea ecx, [esp + 0x94]
mov byte [esp + 0x134], 1
call fcn.10003f0d
mov edi, dword [esp + 0x10]
inc edi
mov dword [esp + 0x10], edi
cmp edi, 0x12c
jb 0x10040135
mov eax, dword [ebp + 0x18]
mov dword [eax], 2
jmp 0x10040581
push 0x22
pop eax
xor ebx, ebx
mov dword [esp + 0x1c], 0xa017300
push 2
mov ecx, ebx
mov word [esp + 0x2c], ax
pop esi
mov dword [esp + 0x18], ecx
cmp esi, 2
jne 0x10040376
push esi
pop ecx
mov dword [esp + 0x18], ecx
jmp 0x100403b7
movzx edx, byte [esp + esi + 0x1d]
mov eax, esi
sub eax, ecx
movzx eax, byte [esp + eax + 0x1a]
movzx ecx, word [esp + eax*2 + 0x28]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [esp + esi + 0x1c]
add ecx, edx
mov edx, 0x48e7
push ecx
mov word [esp + eax*2 + 0x2c], cx
lea eax, [esp + 0x1c]
push eax
push 1
push ecx
call fcn.1003ff47
mov ecx, dword [esp + 0x28]
add esp, 0x10
add esi, 2
cmp esi, 4
jb 0x10040369
xor eax, eax
mov dword [esp + 0xb4], ebx
push 7
mov word [esp + 0x2e], ax
lea ecx, [esp + 0xa8]
pop edi
mov word [esp + 0xa4], ax
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0xbc], edi
call fcn.100202ec
push 1
push 0x2aee
push 1
push 0x2dde
push 0x6b54
lea eax, [esp + 0xa0]
mov byte [esp + 0x140], 5
push eax
push 0x7ba7
push 0x5ca2
mov dl, 1
mov dword [esp + 0x48], ebx
lea ecx, [esp + 0xc4]
call fcn.1003fcea
add esp, 0x20
mov dword [esp + 0x38], 0x2007401
mov ecx, ebx
mov dword [esp + 0x3c], 0x3d8a9c03
mov dword [esp + 0x40], 0x7c030d02
mov dword [esp + 0x20], ecx
push 0x20
pop eax
push 2
mov word [esp + 0x76], ax
pop esi
cmp esi, 4
jne 0x1004046b
push esi
pop ecx
push 6
mov dword [esp + 0x24], ecx
pop esi
jmp 0x100404b2
movzx edx, byte [esp + esi + 0x39]
mov eax, esi
sub eax, ecx
push 1
movzx eax, byte [esp + eax + 0x3a]
movzx eax, word [esp + eax*2 + 0x74]
mov ecx, eax
and eax, edx
or ecx, edx
mov edx, 0x4352
sub ecx, eax
movzx eax, byte [esp + esi + 0x3c]
push ecx
push ecx
push 0x34b4
mov word [esp + eax*2 + 0x80], cx
lea eax, [esp + 0x30]
push eax
call fcn.1003feef
mov ecx, dword [esp + 0x34]
add esp, 0x14
add esi, 2
cmp esi, 0xc
jb 0x1004045b
xor eax, eax
mov dword [esp + 0xd4], edi
mov word [esp + 0x78], ax
lea ecx, [esp + 0xc0]
mov word [esp + 0xc0], ax
lea eax, [esp + 0x70]
push eax
mov dword [esp + 0xd4], ebx
call fcn.100202ec
push ecx
push ecx
lea eax, [esp + 0xc8]
mov byte [esp + 0x134], 6
push eax
lea ecx, [esp + 0xb0]
call fcn.10024833
push ebx
push 1
lea ecx, [esp + 0xc8]
mov byte [esp + 0x134], 5
call fcn.10003f0d
xor eax, eax
lea edi, [esp + 0x70]
stosd dword es:[edi], eax
sub esp, 0xc
mov edx, 0x4f99
stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x23]
push eax
push 1
push ecx
call fcn.1003ff1d
add esp, 0x18
lea edx, [esp + 0x58]
lea ecx, [esp + 0xa4]
call fcn.1003e7eb
mov ecx, dword [ebp + 0x18]
push ebx
push 1
mov dword [ecx], eax
lea ecx, [esp + 0xac]
call fcn.10003f0d
push ebx
push 1
lea ecx, [esp + 0xf8]
call fcn.10003f0d
push ebx
push 1
lea ecx, [esp + 0x94]
call fcn.10003f0d
push ebx
push 1
lea ecx, [esp + 0x60]
call fcn.10003f0d
lea ecx, [esp + 0x48]
call fcn.10014c8b
jmp 0x100406c3
mov eax, dword [ebp + 0x18]
mov dword [eax], 1
jmp 0x100406c3
cmp byte [ecx], 0
je 0x100406c3
mov dword [esp + 0x54], 0x13b7
cmp dword [esp + 0x54], 0x161e
jle 0x10040656
xor ebx, ebx
mov esi, ebx
mov dword [esp + 0x18], ebx
mov edi, ebx
mov dword [esp + 0x20], ebx
lea eax, [edi + esi]
mov dword [esp + 0x10], 0x33a8
mov dword [esp + 0x24], eax
mov esi, eax
mov edi, 0x612
mov eax, esi
lea ecx, [esp + 0x108]
cdq
push edx
push eax
call fcn.10001a95
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10040607
mov eax, dword [eax]
push eax
call fcn.10047ad3
pop ecx
push ebx
push 1
lea ecx, [esp + 0x110]
call fcn.10003d9b
inc esi
dec edi
jne 0x100405ec
mov eax, dword [esp + 0x24]
dec eax
dec dword [esp + 0x10]
mov dword [esp + 0x24], eax
jne 0x100405e5
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
inc edi
mov dword [esp + 0x20], edi
cmp edi, 0x284a
jl 0x100405d6
inc esi
mov dword [esp + 0x18], esi
cmp esi, 0x6c2b
jl 0x100405d0
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
cmp dword [esp + 0x54], 0x1382
jge 0x100406c3
push str.vpfrairc_odhfe_dkgxwpvt_vucdcrzl
call fcn.10047ad3
pop ecx
jmp 0x100406c3
cmp byte [ebp + 0xc], 0
je 0x100406a3
xor ebx, ebx
mov byte [esp + 0x16], bl
cmp byte [esp + 0x16], bl
je 0x100406c3
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetTextColor]
jmp 0x100406c3
mov dword [edx], 0
cmp dword [edx], 1
jge 0x100406c3
mov esi, dword [ebp + 0x10]
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0x1124f01c
inc dword [edx]
cmp dword [edx], 1
jl 0x100406b1
mov ecx, dword [esp + 0x124]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret