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

Disassembly:
sub esp, 0x80
push ebx
push ebp
mov ebp, dword [esp + 0xac]
push esi
mov esi, dword [esp + 0xa4]
lea eax, [esi*4 + 1]
imul eax, ebp
push edi
xor edi, edi
push eax
mov dword [esp + 0x30], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x60], edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x80], edi
mov dword [esp + 0x90], edi
mov dword [esp + 0x50], edi
call dword [sym.imp.MOZCRT19.dll_malloc]
add esp, 4
cmp eax, edi
mov dword [esp + 0x1c], eax
jne 0x1001f8d0
lea ebx, [edi - 2]
jmp 0x1001ffdd
mov edx, dword [esp + 0xac]
lea eax, [eax + ebp - 1]
mov ecx, ebp
neg ecx
and eax, ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xb0]
push eax
sub edx, eax
mov eax, dword [esp + 0x9c]
push edx
push eax
call fcn.10020420
mov ebx, eax
add esp, 0xc
cmp ebx, edi
jl 0x1001ffdd
lea esi, [esi + esi*2 + 2]
lea ecx, [esp + 0x20]
push esi
push ecx
mov dword [esp + 0x18], ebx
call fcn.10020d60
mov ebx, eax
add esp, 8
cmp ebx, edi
jl 0x1001ffdd
lea edx, [esp + 0x30]
push esi
push edx
call fcn.10020d60
mov ebx, eax
add esp, 8
cmp ebx, edi
jl 0x1001ffdd
lea eax, [esp + 0x40]
push esi
push eax
call fcn.10020d60
mov ebx, eax
add esp, 8
cmp ebx, edi
jl 0x1001ffdd
cmp ebp, 2
mov ebp, dword [esp + 0xa4]
jbe 0x1001fabe
lea ecx, [esp + 0x50]
push esi
push ecx
call fcn.10020d60
mov ebx, eax
add esp, 8
cmp ebx, edi
jl 0x1001ffdd
lea edx, [esp + 0x60]
push esi
push edx
call fcn.10020d60
mov ebx, eax
add esp, 8
cmp ebx, edi
jl 0x1001ffdd
lea eax, [esp + 0x70]
push esi
push eax
call fcn.10020d60
mov ebx, eax
add esp, 8
cmp ebx, edi
jl 0x1001ffdd
lea ecx, [esp + 0x80]
push esi
push ecx
call fcn.10020d60
mov ebx, eax
add esp, 8
cmp ebx, edi
jl 0x1001ffdd
lea edx, [esp + 0x50]
push 1
push edx
call fcn.10021010
lea eax, [esp + 0x58]
push eax
mov ecx, eax
push ebp
push ecx
call fcn.1001e420
mov ebx, eax
add esp, 0x14
cmp ebx, edi
jl 0x1001ffdd
mov esi, dword [esp + 0x94]
lea edx, [esp + 0x60]
push edx
push esi
call fcn.10020e40
mov ebx, eax
add esp, 8
cmp ebx, edi
jl 0x1001ffdd
lea eax, [esp + 0x70]
push eax
push esi
call fcn.10022240
mov ebx, eax
add esp, 8
cmp ebx, edi
jl 0x1001ffdd
lea ecx, [esp + 0x70]
push ebp
push ecx
call fcn.1001e1e0
mov ebx, eax
add esp, 8
cmp ebx, edi
jl 0x1001ffdd
push ebp
lea edx, [esp + 0x84]
push edx
lea eax, [esp + 0x78]
push esi
push eax
call fcn.1001e270
mov ebx, eax
add esp, 0x10
cmp ebx, edi
jl 0x1001ffdd
mov esi, dword [esp + 0xb4]
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0x18]
push esi
push ecx
push edx
lea eax, [esp + 0x5c]
push eax
call fcn.1001f780
mov ebx, eax
add esp, 0x10
cmp ebx, edi
jl 0x1001ffdd
mov eax, dword [esp + 0x10]
cmp eax, 4
jae 0x1001fafe
lea ecx, [esp + 0x20]
shl eax, 4
push ecx
lea edx, [esp + eax + 0x54]
push edx
call fcn.10020e40
mov ebx, eax
add esp, 8
cmp ebx, edi
jl 0x1001ffdd
mov dword [esp + 0x10], esi
jmp 0x1001fafe
cmp dword [esp + 0x10], edi
lea eax, [esp + 0x20]
jne 0x1001fae3
push 1
push eax
call fcn.10021010
lea ecx, [esp + 0x28]
push ecx
mov edx, ecx
push ebp
push edx
call fcn.1001e420
add esp, 0x14
jmp 0x1001faf4
mov ecx, dword [esp + 0x94]
push eax
push ecx
call fcn.10020e40
add esp, 8
mov ebx, eax
cmp ebx, edi
jl 0x1001ffdd
mov eax, 4
cmp dword [esp + 0xb4], eax
mov dword [esp + 0x14], eax
jbe 0x1001fc8d
jmp 0x1001fb1a
mov eax, dword [esp + 0x14]
mov esi, eax
and esi, 3
test al, 1
je 0x1001fbc6
mov ecx, dword [esp + 0x94]
mov edx, esi
shl edx, 4
lea eax, [esp + edx + 0x50]
push ebp
push eax
push ecx
add eax, 0xfffffff0
push eax
call fcn.1001e270
mov ebx, eax
add esp, 0x10
cmp ebx, edi
jl 0x1001ffdd
cmp esi, 3
jne 0x1001fc75
mov esi, dword [esp + 0xb4]
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
push esi
push edx
lea edx, [eax + ecx - 3]
push edx
lea eax, [esp + 0x5c]
push eax
call fcn.1001f780
mov ebx, eax
add esp, 0x10
cmp ebx, edi
jl 0x1001ffdd
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x14]
ja 0x1001fc75
and eax, 3
lea ecx, [esp + 0x20]
shl eax, 4
push ecx
lea edx, [esp + eax + 0x54]
push edx
call fcn.10020e40
mov ebx, eax
add esp, 8
cmp ebx, edi
jl 0x1001ffdd
mov dword [esp + 0x10], esi
jmp 0x1001fc75
cmp eax, 8
jbe 0x1001fc08
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xa8]
push ecx
shr eax, 1
add eax, dword [esp + 0x1c]
push edx
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.1001f820
mov ebx, eax
add esp, 0x10
cmp ebx, edi
jl 0x1001ffdd
shl esi, 4
lea esi, [esp + esi + 0x50]
push esi
lea ecx, [esp + 0x34]
push ecx
jmp 0x1001fc4f
shr eax, 1
and eax, 3
cmp eax, esi
jne 0x1001fc3f
lea edx, [esp + 0x30]
shl eax, 4
push edx
lea eax, [esp + eax + 0x54]
push eax
call fcn.10020e40
mov ebx, eax
add esp, 8
cmp ebx, edi
jl 0x1001ffdd
shl esi, 4
lea esi, [esp + esi + 0x50]
push esi
lea ecx, [esp + 0x34]
push ecx
jmp 0x1001fc4f
shl esi, 4
lea esi, [esp + esi + 0x50]
shl eax, 4
push esi
lea edx, [esp + eax + 0x54]
push edx
call fcn.10022240
mov ebx, eax
add esp, 8
cmp ebx, edi
jl 0x1001ffdd
push ebp
push esi
call fcn.1001e1e0
mov ebx, eax
add esp, 8
cmp ebx, edi
jl 0x1001ffdd
mov eax, dword [esp + 0x14]
add eax, 1
cmp eax, dword [esp + 0xb4]
mov dword [esp + 0x14], eax
jb 0x1001fb16
mov eax, dword [esp + 0xb0]
lea ecx, [eax + eax]
mov eax, dword [esp + 0xac]
sub eax, ecx
lea edi, [esp + 0x20]
lea esi, [esp + 0x30]
mov dword [esp + 0x14], eax
js 0x1001ffc3
mov edx, dword [esp + 0xb0]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x98]
push edx
push eax
push ecx
call fcn.10020420
mov ebx, eax
add esp, 0xc
test ebx, ebx
jl 0x1001ffdd
mov eax, dword [esp + 0xb0]
add eax, 0xffffffff
cmp eax, 5
mov dword [esp + 0x10], ebx
ja case.0x1001fcf0.1
jmp dword [eax*4 + 0x10020044]
test ebx, ebx
jne 0x1001fd1e
push esi
push edi
call fcn.10022240
mov ebx, eax
add esp, 8
test ebx, ebx
jl 0x1001ffdd
push ebp
push esi
call fcn.1001e1e0
add esp, 8
jmp 0x1001fe8d
test bl, 1
je case.0x1001fcf0.1
push esi
push edi
call fcn.10022240
mov ebx, eax
add esp, 8
test ebx, ebx
jl 0x1001ffdd
push ebp
push esi
call fcn.1001e1e0
mov ebx, eax
add esp, 8
test ebx, ebx
jl 0x1001ffdd
mov edx, dword [esp + 0x94]
jmp 0x1001ff98
push esi
push edi
call fcn.10022240
mov ebx, eax
add esp, 8
test ebx, ebx
jl 0x1001ffdd
push ebp
push esi
call fcn.1001e1e0
mov ebx, eax
add esp, 8
test ebx, ebx
jl 0x1001ffdd
push edi
push esi
call fcn.10022240
mov ebx, eax
add esp, 8
test ebx, ebx
jl 0x1001ffdd
push ebp
push edi
call fcn.1001e1e0
mov ebx, eax
add esp, 8
test ebx, ebx
jl 0x1001ffdd
push esi
push edi
call fcn.10022240
mov ebx, eax
add esp, 8
test ebx, ebx
jl 0x1001ffdd
push ebp
push esi
call fcn.1001e1e0
mov ebx, eax
add esp, 8
test ebx, ebx
jl 0x1001ffdd
push edi
push esi
call fcn.10022240
mov ebx, eax
add esp, 8
test ebx, ebx
jl 0x1001ffdd
push ebp
push edi
call fcn.1001e1e0
mov ebx, eax
add esp, 8
test ebx, ebx
jl 0x1001ffdd
push esi
push edi
call fcn.10022240
mov ebx, eax
add esp, 8
test ebx, ebx
jl 0x1001ffdd
push ebp
push esi
call fcn.1001e1e0
mov ebx, eax
add esp, 8
test ebx, ebx
jl 0x1001ffdd
push edi
push esi
call fcn.10022240
mov ebx, eax
add esp, 8
test ebx, ebx
jl 0x1001ffdd
push ebp
push edi
call fcn.1001e1e0
mov ebx, eax
add esp, 8
test ebx, ebx
jl 0x1001ffdd
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0x1c]
push ecx
add edx, eax
push edx
lea ecx, [esp + 0x4c]
push ecx
call fcn.1001f820
mov ebx, eax
add esp, 0x10
test ebx, ebx
jl 0x1001ffdd
push ebp
push esi
lea edx, [esp + 0x48]
push edx
push edi
call fcn.1001e270
add esp, 0x10
mov ebx, eax
test ebx, ebx
jl 0x1001ffdd
mov eax, edi
mov edi, esi
mov esi, eax
jmp 0x1001ffb2
push esi
push edi
call fcn.10022240
mov ebx, eax
add esp, 8
test ebx, ebx
jl 0x1001ffdd
push ebp
push esi
call fcn.1001e1e0
mov ebx, eax
add esp, 8
test ebx, ebx
jl 0x1001ffdd
push edi
push esi
call fcn.10022240
mov ebx, eax
add esp, 8
test ebx, ebx
jl 0x1001ffdd
push ebp
push edi
call fcn.1001e1e0
mov ebx, eax
add esp, 8
test ebx, ebx
jl 0x1001ffdd
push esi
push edi
call fcn.10022240
mov ebx, eax
add esp, 8
test ebx, ebx
jl 0x1001ffdd
push ebp
push esi
call fcn.1001e1e0
mov ebx, eax
add esp, 8
test ebx, ebx
jl 0x1001ffdd
push edi
push esi
call fcn.10022240
mov ebx, eax
add esp, 8
test ebx, ebx
jl 0x1001ffdd
push ebp
push edi
call fcn.1001e1e0
mov ebx, eax
add esp, 8
test ebx, ebx
jl 0x1001ffdd
push esi
push edi
call fcn.10022240
mov ebx, eax
add esp, 8
test ebx, ebx
jl 0x1001ffdd
push ebp
push esi
call fcn.1001e1e0
mov ebx, eax
add esp, 8
test ebx, ebx
jl 0x1001ffdd
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0x1c]
push ecx
add edx, eax
push edx
lea ecx, [esp + 0x4c]
push ecx
call fcn.1001f820
mov ebx, eax
add esp, 0x10
test ebx, ebx
jl 0x1001ffdd
lea edx, [esp + 0x40]
push ebp
push edi
push edx
push esi
call fcn.1001e270
mov ebx, eax
add esp, 0x10
test ebx, ebx
jl 0x1001ffdd
jmp 0x1001ffb2
call dword [sym.imp.MOZCRT19.dll_abort]
mov eax, dword [esp + 0xb0]
sub dword [esp + 0x14], eax
jns 0x1001fcb2
push ebp
push edi
call fcn.1001e1e0
mov ecx, dword [esp + 0xa8]
push ecx
push edi
mov ebx, eax
call fcn.10020f30
add esp, 0x10
lea edx, [esp + 0x20]
push edx
call fcn.10020f80
lea eax, [esp + 0x34]
push eax
call fcn.10020f80
lea ecx, [esp + 0x58]
push ecx
call fcn.10020f80
lea edx, [esp + 0x6c]
push edx
call fcn.10020f80
lea eax, [esp + 0x80]
push eax
call fcn.10020f80
lea ecx, [esp + 0x94]
push ecx
call fcn.10020f80
lea edx, [esp + 0x58]
push edx
call fcn.10020f80
mov eax, dword [esp + 0x38]
push eax
call dword [sym.imp.MOZCRT19.dll_free]
add esp, 0x20
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x80
ret