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

Disassembly:
sub esp, 0x44
mov eax, dword [esp + 0x48]
push ebx
push ebp
xor ebx, ebx
mov dword [esp + 0xc], 0
xor ebp, ebp
mov dword [esp + 0x34], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x44], 0xffffffff
push esi
push edi
test eax, eax
je 0x1000e6a2
push eax
call fcn.10005e40
add esp, 4
mov dword [esp + 0x3c], eax
mov ebx, eax
mov esi, dword [esp + 0x5c]
mov eax, dword [esi]
test eax, eax
je 0x1000e6b6
mov byte [esp + 0x38], 2
cmp eax, 3
jne 0x1000e6bb
mov byte [esp + 0x38], 1
push 0
push 0
push dword [esp + 0x40]
push dword [esp + 0x80]
push dword [esp + 0x80]
call fcn.10015a10
add esp, 0x14
mov dword [esp + 0x28], eax
test eax, eax
jne 0x1000e6fe
mov edx, 0x3000
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x1000ecd0
pop edi
pop esi
mov dword [ecx], ebp
mov eax, edx
pop ebp
pop ebx
add esp, 0x44
ret
mov eax, dword [esp + 0x6c]
test al, 0x48
jne 0x1000e71f
test ebx, ebx
je 0x1000e717
push 3
push dword [esi]
push ebx
call fcn.10009660
add esp, 0xc
mov dword [esp + 0x10], 3
xor esi, esi
mov dword [esp + 0x24], ebp
mov dword [esp + 0x18], esi
mov dword [esp + 0x50], esi
nop dword [eax]
xor ecx, ecx
shl esi, 2
xor ebp, ebp
mov dword [esp + 0x20], 0
xor edi, edi
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x40], ecx
cmp byte [esp + 0x7c], cl
jne 0x1000e7e1
mov eax, dword [esp + 0x60]
test eax, eax
je 0x1000e7c1
mov eax, dword [esi + eax]
mov ebp, dword [eax + 0x19e4]
lea edi, [eax + 0x19e4]
mov dword [esp + 0x20], edi
mov edx, dword [eax + 0x19e0]
lea ecx, [eax + 0x18f0]
add eax, 0x1800
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0x3e8]
mov dword [esp + 0x30], edx
mov edx, dword [edi + 0xc]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x40], eax
add ecx, esi
lea eax, [edi + 8]
jmp 0x1000e7d3
mov ecx, dword [esp + 0x68]
add ecx, esi
mov eax, dword [ecx]
mov edx, dword [eax + 4]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 8]
mov ecx, dword [ecx]
mov edi, dword [eax]
add ecx, 0x120
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x68]
add edx, esi
cmp dword [esp + 0x60], 0
jne 0x1000e7f3
mov eax, dword [edx]
mov ebp, dword [eax + 0xc]
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
mov eax, dword [eax]
mov eax, dword [eax + ebx*4]
mov ebx, dword [esp + 0x3c]
cmp eax, 0x27
ja case.0x1000e814.4
movzx eax, byte [eax + 0x1000ef78]
jmp dword [eax*4 + 0x1000ef1c]
test ebx, ebx
je 0x1000e890
mov eax, dword [esp + 0x5c]
mov edx, dword [ebx + 4]
mov ecx, dword [0x1006f308]
mov esi, dword [eax + 4]
lea eax, [edx + 4]
cmp eax, 0x20
jae 0x1000e855
mov ebp, dword [esp + 0x10]
and ecx, esi
mov dword [ebx + 4], eax
mov eax, dword [ebx]
shl eax, 4
or ecx, eax
add ebp, 4
mov dword [ebx], ecx
mov dword [esp + 0x10], ebp
jmp 0x1000eee6
mov eax, 0x20
mov edi, 4
sub eax, edx
and esi, ecx
sub edi, eax
cmp eax, 0x20
jne 0x1000e86e
xor edx, edx
jmp 0x1000e874
mov edx, dword [ebx]
mov ecx, eax
shl edx, cl
mov ecx, edi
mov eax, esi
shr eax, cl
or eax, edx
push 0x20
push eax
lea eax, [ebx + 8]
push eax
call fcn.10005b10
add esp, 0xc
mov dword [ebx], esi
mov dword [ebx + 4], edi
mov ebp, dword [esp + 0x10]
add ebp, 4
mov dword [esp + 0x10], ebp
jmp 0x1000eee6
mov eax, dword [esp + 0x64]
mov eax, dword [eax + 8]
mov dword [esp + 0x50], eax
test ebx, ebx
je 0x1000e918
mov edx, dword [ebx + 4]
mov esi, eax
mov ecx, dword [0x1006f2fc]
lea eax, [edx + 1]
cmp eax, 0x20
jae 0x1000e8dd
mov ebp, dword [esp + 0x10]
and ecx, esi
mov dword [ebx + 4], eax
mov eax, dword [ebx]
add eax, eax
or ecx, eax
inc ebp
mov dword [ebx], ecx
mov dword [esp + 0x10], ebp
jmp 0x1000eee6
mov eax, 0x20
mov edi, 1
sub eax, edx
and esi, ecx
sub edi, eax
cmp eax, 0x20
jne 0x1000e8f6
xor edx, edx
jmp 0x1000e8fc
mov ecx, eax
mov edx, dword [ebx]
shl edx, cl
mov ecx, edi
mov eax, esi
shr eax, cl
or eax, edx
push 0x20
push eax
lea eax, [ebx + 8]
push eax
call fcn.10005b10
add esp, 0xc
mov dword [ebx], esi
mov dword [ebx + 4], edi
mov ebp, dword [esp + 0x10]
inc ebp
mov dword [esp + 0x10], ebp
jmp 0x1000eee6
mov eax, dword [edx]
mov ecx, dword [eax + 0x14]
mov edi, dword [eax + 0x10]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x48], ecx
cmp ebp, 2
jne 0x1000e940
lea esi, [ebp + 0xd]
jmp 0x1000e958
test al, 0x10
je 0x1000e94b
mov esi, 6
jmp 0x1000e958
mov esi, eax
shr esi, 3
not esi
and esi, 1
or esi, 0xa
test ebx, ebx
je case.default.0x1000e993
test al, 0x10
jne 0x1000e98e
push 1
push 0
push ebx
call fcn.10009660
push 2
push ebp
push ebx
call fcn.10009660
cmp edi, 2
mov eax, 1
push 1
cmove edi, eax
push edi
push ebx
call fcn.10009660
add esp, 0x24
cmp ebp, 3
ja case.default.0x1000e993
jmp dword [ebp*4 + 0x1000efa0]
push 6
push dword [esp + 0x20]
push ebx
call fcn.10009660
mov eax, dword [esp + 0x78]
add esp, 0xc
test al, 0x18
jne case.default.0x1000e993
push 1
push 0
push ebx
call fcn.10009660
mov ebp, dword [esp + 0x1c]
add esp, 0xc
add ebp, esi
mov dword [esp + 0x10], ebp
jmp 0x1000eee6
push 4
push dword [esp + 0x20]
push ebx
call fcn.10009660
push 7
push dword [esp + 0x58]
push ebx
call fcn.10009660
add esp, 0x18
mov ebp, dword [esp + 0x10]
add ebp, esi
mov dword [esp + 0x10], ebp
jmp 0x1000eee6
test ebx, ebx
je 0x1000ea4c
mov edx, dword [ebx + 4]
lea eax, [edx + 1]
cmp eax, 0x20
jae 0x1000ea19
mov ebp, dword [esp + 0x10]
shl dword [ebx], 1
inc ebp
mov dword [ebx + 4], eax
mov dword [esp + 0x10], ebp
jmp 0x1000eee6
mov ecx, 0x20
mov esi, 1
sub ecx, edx
sub esi, ecx
cmp ecx, 0x20
jne 0x1000ea30
xor eax, eax
jmp 0x1000ea34
mov eax, dword [ebx]
shl eax, cl
push 0x20
push eax
lea eax, [ebx + 8]
push eax
call fcn.10005b10
add esp, 0xc
mov dword [ebx], 0
mov dword [ebx + 4], esi
mov ebp, dword [esp + 0x10]
inc ebp
mov dword [esp + 0x10], ebp
jmp 0x1000eee6
cmp byte [esp + 0x7c], 0
mov eax, dword [esp + 0x64]
jne 0x1000ea6a
mov ecx, dword [eax + 0xc]
jmp 0x1000ea6c
xor ecx, ecx
push ebx
add eax, 0x10
push eax
push ecx
push dword [esp + 0x28]
push dword [esp + 0x3c]
push edi
call fcn.1000f4e0
mov ebp, dword [esp + 0x28]
add esp, 0x18
add ebp, eax
mov dword [esp + 0x10], ebp
jmp 0x1000eee6
test ebx, ebx
je 0x1000eab9
mov eax, dword [edx]
push 8
mov eax, dword [eax + 0x10c]
lea eax, [eax*4 + 0xa0]
sub eax, dword [esp + 0x44]
add eax, dword [esp + 0x34]
push eax
push ebx
call fcn.10009660
add esp, 0xc
mov ebp, dword [esp + 0x10]
add ebp, 8
mov dword [esp + 0x10], ebp
jmp 0x1000eee6
mov eax, dword [esp + 0x6c]
and eax, 1
push eax
push ebx
push dword [esp + 0x28]
call fcn.1000f950
add esp, 0xc
mov ecx, eax
test ebx, ebx
je 0x1000eb01
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x14]
mov eax, dword [esi + eax]
cmp ecx, dword [eax + 0x1dbc]
mov eax, 0x4200
cmovne edx, eax
mov dword [esp + 0x14], edx
mov ebp, dword [esp + 0x10]
add ebp, ecx
jmp 0x1000eb63
mov ecx, dword [edx]
push dword [esp + 0x30]
lea eax, [ecx + 0x740]
push eax
lea eax, [ecx + 0x560]
push eax
push ebx
push dword [esp + 0x54]
push dword [esp + 0x34]
push dword [esp + 0x60]
call fcn.1000f6d0
add esp, 0x1c
mov edx, eax
test ebx, ebx
je 0x1000eb5d
mov eax, dword [esp + 0x60]
mov eax, dword [esi + eax]
mov ecx, dword [eax + 0x1dc8]
add ecx, dword [eax + 0x1dc4]
mov eax, dword [esp + 0x14]
cmp edx, ecx
mov ecx, 0x41e0
cmovne eax, ecx
mov dword [esp + 0x14], eax
mov ebp, dword [esp + 0x10]
add ebp, edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x10], ebp
test edx, edx
jne 0x1000ecd0
jmp 0x1000eeea
test byte [esp + 0x6c], 2
je case.0x1000e814.7
pop edi
pop esi
mov edx, 0x3000
pop ebp
mov eax, edx
pop ebx
add esp, 0x44
ret
test ebx, ebx
je 0x1000e918
test ecx, ecx
je 0x1000e918
mov edi, 1
cmp ebp, 2
mov eax, 8
mov edx, edi
cmove edx, eax
xor eax, eax
cmp dword [ecx + eax*4], 0
jne 0x1000ec1d
inc eax
cmp eax, edx
jl 0x1000ebb6
mov eax, dword [ebx + 4]
lea esi, [eax + 1]
cmp esi, 0x20
jae 0x1000ebdf
mov ebp, dword [esp + 0x10]
shl dword [ebx], 1
inc ebp
mov dword [ebx + 4], esi
mov dword [esp + 0x10], ebp
jmp 0x1000eee6
mov ecx, 0x20
mov esi, edi
sub ecx, eax
sub esi, ecx
cmp ecx, 0x20
jne 0x1000ebf3
xor eax, eax
jmp 0x1000ebf7
mov eax, dword [ebx]
shl eax, cl
push 0x20
push eax
lea eax, [ebx + 8]
push eax
call fcn.10005b10
mov ebp, dword [esp + 0x1c]
add esp, 0xc
inc ebp
mov dword [ebx], 0
mov dword [ebx + 4], esi
mov dword [esp + 0x10], ebp
jmp 0x1000eee6
mov edx, dword [ebx + 4]
mov esi, dword [0x1006f2fc]
and esi, edi
lea eax, [edx + 1]
cmp eax, 0x20
jae 0x1000ec49
mov ebp, dword [esp + 0x10]
mov dword [ebx + 4], eax
mov eax, dword [ebx]
add eax, eax
or eax, esi
inc ebp
mov dword [ebx], eax
mov dword [esp + 0x10], ebp
jmp 0x1000eee6
mov ecx, 0x20
sub ecx, edx
sub edi, ecx
cmp ecx, 0x20
jne 0x1000e8f8
xor edx, edx
jmp 0x1000e8fc
push ebx
push ebp
push ecx
call fcn.1000fbb0
mov ebp, dword [esp + 0x1c]
add esp, 0xc
add ebp, eax
mov dword [esp + 0x10], ebp
jmp 0x1000eee6
test ebx, ebx
je 0x1000e918
mov edx, dword [ebx + 4]
lea eax, [edx + 1]
cmp eax, 0x20
jae 0x1000eca2
mov ebp, dword [esp + 0x10]
shl dword [ebx], 1
inc ebp
mov dword [ebx + 4], eax
mov dword [esp + 0x10], ebp
jmp 0x1000eee6
mov ecx, 0x20
mov esi, 1
sub ecx, edx
sub esi, ecx
cmp ecx, 0x20
jne 0x1000ebf3
xor eax, eax
jmp 0x1000ebf7
test byte [esp + 0x6c], 4
je case.0x1000e814.7
mov edx, 2
pop edi
pop esi
pop ebp
mov eax, edx
pop ebx
add esp, 0x44
ret
test ebx, ebx
je case.0x1000e814.7
mov edi, dword [esp + 0x60]
mov eax, dword [esi + edi]
lea esi, [ebx + 4]
add eax, 0x1000
mov dword [esp + 0x40], eax
mov eax, dword [edx]
add eax, 0x18
cmp dword [ebx + 0x24], 0
mov dword [esp + 0x44], eax
jne 0x1000ed13
push 0
push dword [esi]
lea eax, [ebx + 8]
push eax
call fcn.10005ab0
jmp 0x1000ed25
mov eax, dword [esi]
test eax, eax
je 0x1000ed28
push eax
push dword [ebx]
lea eax, [ebx + 8]
push eax
call fcn.10005b10
add esp, 0xc
lea eax, [ebx + 8]
mov dword [esi], 0
push eax
mov dword [ebx], 0
call fcn.10005aa0
mov ecx, dword [esp + 0x24]
mov ebp, eax
xor eax, eax
mov dword [esp + 0x34], ebp
add esp, 4
mov dword [esp + 0x48], eax
cmp dword [ecx + 0x14], eax
jle 0x1000edb3
lea edi, [ecx + 0x18]
cmp dword [edi], 0xd
je 0x1000ed9e
mov esi, dword [edi + 4]
mov ebp, dword [edi + 8]
add ebp, esi
cmp esi, ebp
jge 0x1000ed9e
nop dword [eax]
mov eax, dword [esp + 0x44]
push ebx
push dword [edi]
mov ecx, dword [eax + esi*4]
mov eax, dword [eax + esi*4 + 4]
sub eax, ecx
push eax
mov eax, dword [esp + 0x4c]
lea eax, [eax + ecx*2]
push eax
call fcn.1001a160
inc esi
add esp, 0x10
cmp esi, ebp
jl 0x1000ed70
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x20]
inc eax
add edi, 0x10
mov dword [esp + 0x48], eax
cmp eax, dword [ecx + 0x14]
jl 0x1000ed58
mov ebp, dword [esp + 0x30]
mov edi, dword [esp + 0x60]
cmp dword [ebx + 0x24], 0
mov eax, dword [ebx + 4]
jne 0x1000edca
push 0
push eax
lea eax, [ebx + 8]
push eax
call fcn.10005ab0
jmp 0x1000edda
test eax, eax
je 0x1000eddd
push eax
push dword [ebx]
lea eax, [ebx + 8]
push eax
call fcn.10005b10
add esp, 0xc
lea eax, [ebx + 8]
mov dword [ebx + 4], 0
push eax
mov dword [ebx], 0
call fcn.10005aa0
mov esi, dword [esp + 0x1c]
mov ecx, eax
sub ecx, ebp
add esp, 4
mov eax, dword [edi + esi*4]
cmp ecx, dword [eax + 0x1dc0]
jne 0x1000ef0c
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
add ebp, ecx
mov dword [esp + 0x10], ebp
jmp 0x1000eeee
mov ecx, dword [esp + 0x58]
test ecx, ecx
je case.0x1000e814.7
push 0xc0
push ecx
call fcn.10005d60
add esp, 8
mov dword [esp + 0x34], eax
jmp case.0x1000e814.7
mov ecx, dword [esp + 0x58]
test ecx, ecx
je case.0x1000e814.7
push 0x80
push ecx
call fcn.10005d60
add esp, 8
mov dword [esp + 0x4c], eax
jmp case.0x1000e814.7
mov ecx, dword [esp + 0x58]
test ecx, ecx
je case.0x1000e814.7
push dword [esp + 0x34]
push ecx
call fcn.10005d30
add esp, 8
jmp case.0x1000e814.7
mov ecx, dword [esp + 0x58]
test ecx, ecx
je case.0x1000e814.7
push dword [esp + 0x4c]
push ecx
call fcn.10005d30
add esp, 8
jmp case.0x1000e814.7
mov ecx, dword [esp + 0x58]
test ecx, ecx
je case.0x1000e814.7
push 0
push ecx
call fcn.10005d60
add esp, 8
mov dword [esp + 0x34], eax
jmp case.0x1000e814.7
mov eax, dword [esp + 0x18]
movzx ecx, byte [esp + 0x38]
inc eax
cdq
idiv ecx
mov ebp, dword [esp + 0x10]
mov esi, edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], esi
jmp 0x1000eeee
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x24], 0xffffffff
mov edx, dword [edx + eax*4 + 4]
mov dword [esp + 0x28], edx
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
inc ecx
mov dword [esp + 0x24], ecx
mov eax, dword [eax]
cmp dword [eax + ecx*4], 0x28
jne 0x1000e730
jmp 0x1000e6e6
pop edi
pop esi
pop ebp
mov eax, 0x4220
pop ebx
add esp, 0x44
ret