Function at 0x1003ebd0
Capabilities:
Read file via mapping

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1006edff
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x178
mov eax, dword [0x10086040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, edx
mov dword [ebp - 0xc8], edi
mov eax, ecx
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0x188], eax
mov dword [ebp - 0xa8], 0
mov dword [ebp - 4], 2
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
cmp dword [0x10086c0c], 0xffffffff
mov dword [ebp - 0xa8], 1
jne 0x1003ecf8
push 0
push 4
push 0
push 4
push 0
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov esi, eax
cmp esi, 0xffffffff
je 0x1003ecf8
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov ecx, eax
call fcn.1003e530
mov dword [ebp - 0xb8], eax
test eax, eax
je 0x1003ecf1
mov edi, dword [eax]
xor edx, edx
test edi, edi
je 0x1003ece2
lea ecx, [eax + 8]
nop dword [eax]
nop dword [eax + eax]
movq xmm0, qword [ecx + 0x10]
mov eax, dword [ecx + 0x18]
movq qword [ebp - 0x84], xmm0
mov dword [ebp - 0x7c], eax
cmp esi, dword [ecx]
je 0x1003ecd1
inc edx
add ecx, 0x1c
cmp edx, edi
jb 0x1003ecb0
jmp 0x1003ecdc
mov eax, dword [ebp - 0x84]
mov dword [0x10086c0c], eax
mov eax, dword [ebp - 0xb8]
push eax
call fcn.10053cde
mov edi, dword [ebp - 0xc8]
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x10086c0c]
mov dword [ebp - 0x120], eax
call fcn.1003ea80
sub esp, 0x18
mov dword [ebp - 0x13c], eax
lea eax, [ebx + 8]
mov ecx, esp
push eax
call fcn.100050c0
mov edx, edi
lea ecx, [ebp - 0x2c]
call fcn.10040a50
add esp, 0x18
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x78]
push 0xf
xorps xmm0, xmm0
mov dword [ebp - 0x68], 0
push str.__typerenderer
movups xmmword [ebp - 0x78], xmm0
mov dword [ebp - 0x64], 0
call fcn.10005690
mov byte [ebp - 4], 4
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
sub esp, 0x18
mov edi, eax
lea eax, [ebp - 0x78]
mov dword [ebp - 0xc8], edi
mov ecx, esp
push eax
call fcn.100050c0
lea edx, [ebx + 0x20]
lea ecx, [ebp - 0xe8]
call fcn.1003e630
add esp, 0x18
mov byte [ebp - 4], 5
mov eax, 0x75ded953
mov ecx, dword [ebp - 0xe4]
mov esi, dword [ebp - 0xe8]
sub ecx, esi
imul ecx
mov dword [ebp - 0xf8], 0
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x1003f88a
xor edi, edi
nop word [eax + eax]
imul eax, edi, 0x22c
mov esi, dword [eax + esi + 8]
mov ecx, esi
call fcn.1003e530
mov dword [ebp - 0xa0], eax
test eax, eax
je 0x1003f856
cmp dword [eax], 0
je 0x1003f856
push esi
push 0
push 0x440
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov dword [ebp - 0xf4], eax
cmp eax, 0xffffffff
je 0x1003f856
xor esi, esi
xor edi, edi
mov dword [ebp - 0xdc], esi
mov dword [ebp - 0xd8], edi
mov dword [ebp - 0xd4], esi
xor ecx, ecx
xor eax, eax
xor edx, edx
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0xc0], edx
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0xa0]
mov byte [ebp - 4], 7
cmp dword [eax], edx
jbe 0x1003f2f5
mov esi, dword [ebp - 0xa0]
add eax, 8
mov dword [ebp - 0xa4], eax
nop word [eax + eax]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x184], xmm0
movq xmm0, qword [eax + 0x10]
mov eax, dword [eax + 0x18]
movq qword [ebp - 0x174], xmm0
mov dword [ebp - 0x16c], eax
mov eax, dword [ebp - 0x174]
cmp eax, dword [ebp - 0x120]
sete cl
mov byte [ebp - 0xa9], cl
cmp eax, dword [ebp - 0x13c]
je 0x1003eeb5
test cl, cl
je 0x1003f2b9
push 2
push 0
push 0
lea eax, [ebp - 0x98]
mov dword [ebp - 0x98], 0
push eax
push dword [ebp - 0xc8]
push dword [ebp - 0x184]
push dword [ebp - 0xf4]
call dword [sym.imp.KERNEL32.dll_DuplicateHandle]
test eax, eax
je 0x1003f2b3
cmp byte [ebp - 0xa9], 0
je 0x1003f028
mov eax, dword [ebp - 0x178]
and eax, 7
cmp al, 7
je 0x1003ef17
push dword [ebp - 0x98]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1003f2b3
push 0
push 0
push 0
push 4
push dword [ebp - 0x98]
xorps xmm0, xmm0
mov dword [ebp - 0x140], 0
movups xmmword [ebp - 0x158], xmm0
movq qword [ebp - 0x148], xmm0
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov esi, eax
lea eax, [ebp - 0x158]
push 0x1c
push eax
push esi
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
test eax, eax
je 0x1003ef86
cmp dword [ebp - 0x14c], 0x10000
jne 0x1003ef86
mov eax, 0x3ff7
xorps xmm1, xmm1
movss xmm0, dword [esi + eax*4 + 0x20]
comiss xmm0, xmm1
ja 0x1003ef9e
comiss xmm1, xmm0
ja 0x1003ef9e
sub eax, 1
jns 0x1003ef71
push dword [ebp - 0x98]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
jmp 0x1003f2ad
lea edi, [eax*4 + 4]
test edi, edi
jle 0x1003ef86
mov ecx, edi
call fcn.1003d9e0
test eax, eax
je 0x1003ef86
mov eax, dword [ebp - 0x98]
mov edx, dword [ebp - 0xc0]
mov dword [ebp - 0x168], eax
mov eax, dword [ebp - 0x184]
mov dword [ebp - 0x164], eax
mov dword [ebp - 0x160], esi
mov dword [ebp - 0x15c], edi
cmp edx, dword [ebp - 0xb8]
je 0x1003f004
movups xmm0, xmmword [ebp - 0x168]
mov esi, dword [ebp - 0xa0]
movups xmmword [edx], xmm0
add edx, 0x10
mov dword [ebp - 0xc0], edx
jmp 0x1003f2b9
lea eax, [ebp - 0x168]
push eax
push edx
lea ecx, [ebp - 0xc4]
call fcn.100420f0
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0xb8], eax
jmp 0x1003f2ad
push 0x210
call fcn.10054824
add esp, 4
mov esi, eax
mov dword [ebp - 0xec], esi
push 0x20c
lea eax, [esi + 4]
push 0
push eax
call fcn.1004bd60
add esp, 0xc
mov dword [esi], 0x104
push 0x210
push esi
push 2
push dword [ebp - 0x98]
call dword [sym.imp.KERNEL32.dll_GetFileInformationByHandleEx]
test eax, eax
je 0x1003f298
lea edx, [esi + 4]
mov dword [ebp - 0x34], 0
mov ecx, edx
mov dword [ebp - 0x30], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x44], xmm0
lea esi, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1003f090
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x44]
call fcn.10005690
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x2c]
cmp dword [ebp - 0x18], 7
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 0x34]
cmova ecx, dword [ebp - 0x2c]
cmp dword [ebp - 0x30], 7
mov dword [ebp - 0x9c], ecx
cmova edx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0xb0], edx
cmp ecx, eax
ja 0x1003f254
test ecx, ecx
je 0x1003f19d
sub eax, ecx
inc eax
lea ecx, [edx + eax*2]
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0xd0], ecx
movzx edi, word [eax]
mov dword [ebp - 0x134], edi
sub ecx, edx
mov esi, 0
sar ecx, 1
je 0x1003f12d
movzx eax, word [edx]
cmp ax, di
je 0x1003f125
cmp ecx, 1
je 0x1003f127
movzx eax, word [edx + 2]
add edx, 2
dec ecx
cmp ax, di
jne 0x1003f113
mov esi, edx
mov eax, dword [ebp - 0x9c]
mov edx, esi
test edx, edx
je 0x1003f254
mov edi, dword [ebp - 0x1c]
mov esi, eax
test edi, edi
je 0x1003f186
mov eax, edx
sub eax, dword [ebp - 0x9c]
mov dword [ebp - 0x138], eax
nop
movzx ecx, word [eax + esi]
movzx eax, word [esi]
cmp cx, ax
jne 0x1003f16c
add esi, 2
sub edi, 1
je 0x1003f186
mov eax, dword [ebp - 0x138]
jmp 0x1003f150
mov edi, dword [ebp - 0x134]
add edx, 2
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xd0]
jmp 0x1003f100
sub edx, dword [ebp - 0xb0]
sar edx, 1
cmp edx, 0xffffffff
je 0x1003f254
mov edi, dword [ebp - 0xd8]
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x60]
call fcn.100050c0
mov ecx, dword [ebp - 0x184]
or dword [ebp - 0xa8], 8
mov dword [ebp - 0x48], ecx
mov byte [ebp - 4], 9
cmp edi, dword [ebp - 0xd4]
je 0x1003f206
xorps xmm0, xmm0
xor edx, edx
movups xmmword [edi], xmm0
mov dword [edi + 0x10], 0
mov eax, 7
movups xmm0, xmmword [ebp - 0x60]
mov dword [edi + 0x14], 0
mov word [ebp - 0x60], dx
movups xmmword [edi], xmm0
movq xmm0, qword [ebp - 0x50]
movq qword [edi + 0x10], xmm0
mov dword [edi + 0x18], ecx
add edi, 0x1c
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0xd8], edi
jmp 0x1003f219
lea eax, [ebp - 0x60]
push eax
push edi
lea ecx, [ebp - 0xdc]
call fcn.10042250
mov eax, dword [ebp - 0x4c]
mov byte [ebp - 4], 8
cmp eax, 7
jbe 0x1003f254
mov edx, dword [ebp - 0x60]
lea ecx, [eax*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x1003f24a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003fa2c
push ecx
push edx
call fcn.10046823
add esp, 8
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x30]
cmp eax, 7
jbe 0x1003f292
mov edx, dword [ebp - 0x44]
lea ecx, [eax*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x1003f288
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003fa2c
push ecx
push edx
call fcn.10046823
add esp, 8
mov esi, dword [ebp - 0xec]
push esi
call fcn.10053cde
add esp, 4
push dword [ebp - 0x98]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [ebp - 0xa0]
mov edx, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xa4]
inc ecx
mov edi, dword [ebp - 0xd8]
add eax, 0x1c
mov dword [ebp - 0xf0], ecx
mov dword [ebp - 0xa4], eax
cmp ecx, dword [esi]
jb 0x1003ee70
mov ecx, dword [ebp - 0xc4]
mov esi, dword [ebp - 0xdc]
mov dword [ebp - 0x9c], ecx
mov eax, edx
sub eax, ecx
mov dword [ebp - 0xb0], eax
sar eax, 4
mov dword [ebp - 0xa4], eax
cmp eax, 1
jne 0x1003f40f
mov eax, edi
sub eax, esi
sub eax, 0x1c
cmp eax, 0x1c
jae 0x1003f40f
push 0x80
call fcn.100463c4
mov edi, eax
add esp, 4
mov dword [ebp - 0xfc], edi
mov eax, dword [ebp - 0x9c]
xorps xmm0, xmm0
mov byte [ebp - 4], 0xa
movq qword [edi], xmm0
mov dword [edi + 8], 0
mov dword [edi + 4], 1
mov dword [edi + 8], 1
mov dword [edi], 0x1007c140
push dword [eax + 0xc]
push dword [eax + 8]
push dword [eax]
sub esp, 0x18
mov ecx, esp
push esi
call fcn.100050c0
lea esi, [edi + 0xc]
mov ecx, esi
call fcn.1003cf00
or dword [ebp - 0xa8], 4
mov dword [ebp - 0x104], esi
mov dword [ebp - 0x100], edi
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0xb4]
mov eax, dword [ecx + 4]
cmp eax, dword [ecx + 8]
je 0x1003f3c6
mov dword [eax], esi
mov dword [eax + 4], edi
add dword [ecx + 4], 8
mov dword [ebp - 0x104], 0
mov dword [ebp - 0x100], 0
jmp 0x1003f7c8
lea edx, [ebp - 0x104]
push edx
push eax
call fcn.10024130
mov esi, dword [ebp - 0x100]
test esi, esi
je 0x1003f7c8
or eax, 0xffffffff
lock xadd dword [esi + 4], eax
jne 0x1003f7c8
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
jne 0x1003f7c8
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
jmp 0x1003f7c8
cmp ecx, edx
je 0x1003f7c8
cmp esi, edi
je 0x1003f7c8
push ecx
push edi
push esi
lea ecx, [ebp - 0x130]
call fcn.10041950
mov byte [ebp - 4], 0xc
xor esi, esi
xor eax, eax
mov dword [ebp - 0x98], esi
xor edi, edi
mov dword [ebp - 0x118], esi
mov dword [ebp - 0x11c], edi
mov dword [ebp - 0x114], eax
cmp dword [ebp - 0xa4], eax
je 0x1003f4e0
mov esi, dword [ebp - 0xa4]
cmp esi, 0xfffffff
ja 0x1003fa36
shl esi, 4
test esi, esi
je 0x1003f4ae
cmp esi, 0x1000
jb 0x1003f4a3
lea eax, [esi + 0x23]
cmp eax, esi
jbe 0x1003fa31
push eax
call fcn.100463c4
add esp, 4
test eax, eax
je 0x1003fa2c
lea edi, [eax + 0x23]
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x1003f4ae
push esi
call fcn.100463c4
add esp, 4
mov edi, eax
push dword [ebp - 0xb0]
add esi, edi
mov dword [ebp - 0x11c], edi
mov eax, esi
mov dword [ebp - 0x98], esi
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x9c]
push eax
push edi
call fcn.1004bec0
add esp, 0xc
mov dword [ebp - 0x118], esi
mov ecx, esi
sub ecx, edi
sar ecx, 4
mov esi, ecx
mov dword [ebp - 0xd0], ecx
sar esi, 1
test esi, esi
jle 0x1003f53f
mov eax, esi
shl eax, 4
add eax, edi
nop dword [eax]
movups xmm0, xmmword [eax - 0x10]
sub eax, 0x10
dec esi
push dword [ebp - 0xfc]
mov dword [ebp - 0xb0], eax
mov edx, esi
lea eax, [ebp - 0x14c]
push eax
push ecx
mov ecx, edi
movups xmmword [ebp - 0x14c], xmm0
call fcn.10042a00
mov eax, dword [ebp - 0xb0]
add esp, 0xc
mov ecx, dword [ebp - 0xd0]
test esi, esi
jg 0x1003f500
mov byte [ebp - 4], 0xd
mov esi, dword [ebp - 0x130]
lea ecx, [ebp - 0x94]
push esi
call fcn.100050c0
mov esi, dword [esi + 0x18]
mov dword [ebp - 0x7c], esi
lea ecx, [ebp - 0x130]
mov byte [ebp - 4], 0xe
call fcn.100416a0
movups xmm0, xmmword [edi]
movups xmmword [ebp - 0x14c], xmm0
psrldq xmm0, 4
movd eax, xmm0
cmp eax, esi
mov esi, dword [ebp - 0x98]
jl 0x1003f5a9
mov eax, dword [ebp - 0x130]
cmp eax, dword [ebp - 0x12c]
jne 0x1003f70d
mov eax, esi
sub eax, edi
and eax, 0xfffffff0
cmp eax, 0x10
jne 0x1003f70d
mov eax, esi
sub eax, edi
and eax, 0xfffffff0
cmp eax, 0x20
jl 0x1003f5e8
movups xmm0, xmmword [esi - 0x10]
lea eax, [esi - 0x10]
xor edx, edx
push dword [ebp - 0xfc]
movups xmmword [ebp - 0x178], xmm0
lea ecx, [ebp - 0x178]
movups xmm0, xmmword [edi]
push ecx
mov ecx, edi
movups xmmword [eax], xmm0
sub eax, edi
sar eax, 4
push eax
call fcn.10042a00
add esp, 0xc
sub esi, 0x10
push 0x80
mov dword [ebp - 0x98], esi
mov dword [ebp - 0x118], esi
call fcn.100463c4
add esp, 4
mov dword [ebp - 0xcc], eax
mov byte [ebp - 4], 0xf
xorps xmm0, xmm0
push dword [ebp - 0x140]
movq qword [eax], xmm0
push dword [ebp - 0x144]
mov dword [eax + 8], 0
push dword [ebp - 0x14c]
mov dword [eax + 4], 1
mov dword [eax + 8], 1
sub esp, 0x18
mov dword [eax], 0x1007c140
mov ecx, esp
add eax, 0xc
mov dword [ebp - 0xa4], eax
lea eax, [ebp - 0x94]
push eax
call fcn.100050c0
mov ecx, dword [ebp - 0xa4]
call fcn.1003cf00
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xcc]
or dword [ebp - 0xa8], 2
mov dword [ebp - 0x10c], edx
mov dword [ebp - 0x108], eax
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0xb4]
mov esi, dword [ebp - 0xb4]
mov ecx, dword [ecx + 4]
cmp ecx, dword [esi + 8]
mov esi, dword [ebp - 0x98]
je 0x1003f6c9
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0xb4]
mov dword [ecx], edx
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x108], 0
add dword [eax + 4], 8
jmp 0x1003f70d
lea eax, [ebp - 0x10c]
push eax
push ecx
mov ecx, dword [ebp - 0xb4]
call fcn.10024130
mov esi, dword [ebp - 0x108]
test esi, esi
je 0x1003f707
or eax, 0xffffffff
lock xadd dword [esi + 4], eax
jne 0x1003f707
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
jne 0x1003f707
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov esi, dword [ebp - 0x98]
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x80]
cmp ecx, 7
jbe 0x1003f74e
mov edx, dword [ebp - 0x94]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x1003f744
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003fa2c
push ecx
push edx
call fcn.10046823
add esp, 8
mov eax, dword [ebp - 0x130]
cmp eax, dword [ebp - 0x12c]
je 0x1003f764
cmp edi, esi
jne 0x1003f543
mov byte [ebp - 4], 0xc
test edi, edi
je 0x1003f7bd
mov ecx, dword [ebp - 0x114]
mov eax, edi
sub ecx, edi
and ecx, 0xfffffff0
cmp ecx, 0x1000
jb 0x1003f795
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003fa2c
push ecx
push edi
call fcn.10046823
add esp, 8
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x114], 0
lea ecx, [ebp - 0x130]
call fcn.100418d0
push dword [ebp - 0xf4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0xa0]
call fcn.10053cde
mov ecx, dword [ebp - 0x9c]
add esp, 4
mov byte [ebp - 4], 6
test ecx, ecx
je 0x1003f841
mov edx, dword [ebp - 0xb8]
mov eax, ecx
sub edx, ecx
and edx, 0xfffffff0
cmp edx, 0x1000
jb 0x1003f819
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003fa2c
push edx
push ecx
call fcn.10046823
add esp, 8
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xbc], 0
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], 5
call fcn.100418d0
mov edi, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xe4]
mov eax, 0x75ded953
mov esi, dword [ebp - 0xe8]
inc edi
sub ecx, esi
mov dword [ebp - 0xf8], edi
imul ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x1003edc0
mov edi, dword [ebp - 0xc8]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [ebp - 0xe8]
test esi, esi
je 0x1003f900
mov ecx, dword [ebp - 0xe0]
mov eax, 0x75ded953
sub ecx, esi
imul ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
imul ecx, eax, 0x22c
mov eax, esi
cmp ecx, 0x1000
jb 0x1003f8d8
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003fa2c
push ecx
push esi
call fcn.10046823
add esp, 8
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0xe0], 0
mov ecx, dword [ebp - 0x64]
cmp ecx, 7
jbe 0x1003f93a
mov edx, dword [ebp - 0x78]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x1003f930
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003fa2c
push ecx
push edx
call fcn.10046823
add esp, 8
mov ecx, dword [ebp - 0x18]
cmp ecx, 7
jbe 0x1003f974
mov edx, dword [ebp - 0x2c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x1003f96a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003fa2c
push ecx
push edx
call fcn.10046823
add esp, 8
mov ecx, dword [ebx + 0x1c]
xor eax, eax
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 7
mov word [ebp - 0x2c], ax
cmp ecx, 7
jbe 0x1003f9be
mov edx, dword [ebx + 8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x1003f9b4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003fa2c
push ecx
push edx
call fcn.10046823
add esp, 8
mov ecx, dword [ebx + 0x34]
xor eax, eax
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 7
mov word [ebx + 8], ax
cmp ecx, 7
jbe 0x1003fa08
mov edx, dword [ebx + 0x20]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x1003f9fe
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003fa2c
push ecx
push edx
call fcn.10046823
add esp, 8
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100462d6
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.1004f161
call fcn.10003ce0
call fcn.1000feb0
int3