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

Disassembly:
sub esp, 0x134
push ebp
mov ebp, dword [esp + 0x13c]
mov eax, dword [ebp]
push edi
mov edi, dword [eax + 0xc]
mov eax, dword [edi*8 + 0x100b7088]
lea edi, [edi*8 + 0x100b7088]
mov dword [esp + 0x30], edi
cmp eax, 0x206
je 0x100451a9
push ebx
push esi
lea edx, [eax + str.THEZOCQS]
xor eax, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], eax
mov al, byte [edx]
test al, al
je 0x10045192
jmp 0x10044b17
mov ebp, dword [esp + 0x148]
movzx eax, al
inc edx
mov dword [esp + 0x58], edx
cmp eax, 0x80
jb 0x10044b65
cmp eax, 0xe0
jae 0x10044b37
mov ecx, 1
and eax, 0x1f
jmp 0x10044b50
cmp eax, 0xf0
jae 0x10044b48
mov ecx, 2
and eax, 0xf
jmp 0x10044b50
mov ecx, 3
and eax, 7
movsx esi, byte [edx]
and esi, 0x3f
shl eax, 6
or eax, esi
inc edx
sub ecx, 1
jne 0x10044b50
mov dword [esp + 0x58], edx
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0x74]
push edx
push eax
push ebp
call fcn.10043e90
mov eax, dword [esp + 0x80]
add esp, 0x10
test eax, eax
je 0x10045092
mov esi, dword [esp + 0x14c]
push 1
push eax
push esi
call fcn.100079c0
mov ecx, dword [esi + 0x54]
mov esi, dword [ecx + 0x74]
mov ebp, dword [ecx + 0x70]
mov edx, dword [ecx + 0x6c]
add ecx, 0x6c
mov dword [esp + 0x70], esi
mov esi, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
add esp, 0xc
mov dword [esp + 0x60], ebp
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], ecx
test eax, eax
jne 0x10045092
mov eax, edx
shr eax, 0x10
test ax, ax
jle 0x10045092
xor esi, esi
movsx eax, dx
or ebx, 0xffffffff
xor edi, edi
cmp eax, esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x48], eax
jle 0x10045081
jmp 0x10044c00
mov ecx, dword [esp + 0x68]
movsx eax, word [ecx + edi*2]
cmp eax, esi
mov dword [esp + 0x4c], ebx
jle 0x10044c7a
mov edx, dword [esp + 0x38]
test byte [edx + 4], 1
mov ecx, esi
je 0x10044c3e
cmp esi, eax
jg 0x10044c7a
lea edx, [ebp + esi*8 + 4]
mov ebp, dword [esp + 0x14]
test ebx, ebx
jl 0x10044c30
cmp dword [edx], ebp
jle 0x10044c34
mov ebp, dword [edx]
mov ebx, ecx
inc ecx
add edx, 8
cmp ecx, eax
jle 0x10044c28
jmp 0x10044c64
cmp esi, eax
jg 0x10044c7a
lea edx, [ebp + esi*8 + 4]
mov ebp, dword [esp + 0x14]
lea ebx, [ebx]
test ebx, ebx
jl 0x10044c58
cmp dword [edx], ebp
jge 0x10044c5c
mov ebp, dword [edx]
mov ebx, ecx
inc ecx
add edx, 8
cmp ecx, eax
jle 0x10044c50
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x60]
cmp ebx, dword [esp + 0x4c]
je 0x10044c7a
mov dword [esp + 0x24], esi
mov dword [esp + 0x30], eax
inc edi
cmp edi, dword [esp + 0x48]
lea esi, [eax + 1]
jl 0x10044c00
test ebx, ebx
jl 0x10045081
mov ecx, dword [esp + 0x64]
mov dl, byte [ecx + ebx]
mov eax, dword [ebp + ebx*8]
and dl, 3
mov dword [esp + 0x28], ebx
mov dword [esp + 0x3c], ebx
cmp dl, 1
jne 0x10044cb5
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x2c], ebx
jmp 0x10044cc0
or eax, 0xffffffff
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], eax
mov edi, dword [esp + 0x14]
mov eax, ebx
mov dword [esp + 0x34], ebx
lea ebx, [ebx]
cmp eax, dword [esp + 0x24]
jle 0x10044cd9
dec eax
jmp 0x10044cdd
mov eax, dword [esp + 0x30]
mov ecx, dword [ebp + eax*8 + 4]
mov esi, ecx
sub esi, edi
jns 0x10044ceb
mov esi, edi
sub esi, ecx
cmp esi, 5
jle 0x10044d11
mov edx, dword [ebp + eax*8]
mov edi, dword [ebp + ebx*8]
mov ecx, edx
sub ecx, edi
jns 0x10044d02
mov ecx, edi
sub ecx, edx
lea edx, [esi + esi*4]
add edx, edx
add edx, edx
cmp ecx, edx
jle 0x10044d40
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x64]
mov dl, byte [eax + ecx]
and dl, 3
mov dword [esp + 0x28], eax
cmp dl, 1
jne 0x10044d33
cmp dword [esp + 0x2c], 0
mov dword [esp + 0x1c], eax
jge 0x10044d33
mov dword [esp + 0x2c], eax
cmp eax, ebx
jne 0x10044cd0
jmp 0x10044d40
mov eax, dword [esp + 0x34]
cmp eax, dword [esp + 0x30]
jge 0x10044d50
inc dword [esp + 0x34]
jmp 0x10044d58
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x34], ecx
mov esi, dword [esp + 0x34]
mov eax, dword [ebp + esi*8 + 4]
mov ecx, dword [esp + 0x14]
mov edx, eax
sub edx, ecx
jns 0x10044d6e
mov edx, ecx
sub edx, eax
cmp edx, 5
jle 0x10044d90
mov ecx, dword [ebp + esi*8]
mov edi, dword [ebp + ebx*8]
mov eax, ecx
sub eax, edi
jns 0x10044d85
mov eax, edi
sub eax, ecx
lea edx, [edx + edx*4]
add edx, edx
add edx, edx
cmp eax, edx
jle 0x10044db6
mov eax, dword [esp + 0x64]
mov cl, byte [esi + eax]
and cl, 3
mov dword [esp + 0x3c], esi
cmp cl, 1
jne 0x10044db2
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x2c], esi
jge 0x10044db2
mov dword [esp + 0x1c], esi
cmp esi, ebx
jne 0x10044d40
mov edx, dword [esp + 0x38]
test byte [edx + 4], 4
je 0x10044ff3
mov eax, dword [esp + 0x148]
mov ecx, dword [eax + 0x28]
mov eax, 0x51eb851f
mul ecx
mov eax, dword [esp + 0x28]
mov eax, dword [ebp + eax*8]
shr edx, 3
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x3c]
mov esi, dword [ebp + edx*8]
mov edi, esi
sub edi, eax
jns 0x10044df6
sub eax, esi
jmp 0x10044df8
mov eax, edi
cmp eax, dword [esp + 0x48]
jge 0x10044ff3
mov eax, dword [esp + 0x3c]
sub eax, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x24]
mov edi, esi
add eax, 2
sub edi, edx
cmp eax, edi
jg 0x10044ff3
shr ecx, 2
mov dword [esp + 0x74], ecx
mov ecx, dword [ebp + ebx*8]
mov eax, ebx
mov edi, edi
cmp eax, edx
jle 0x10044e37
dec eax
jmp 0x10044e39
mov eax, esi
cmp dword [ebp + eax*8], ecx
jne 0x10044e48
cmp eax, ebx
jne 0x10044e30
jmp 0x10045092
cmp eax, ebx
je 0x10045092
cmp dword [ebp + eax*8], ecx
mov eax, dword [esp + 0x3c]
setl byte [esp + 0x23]
mov ebx, eax
mov byte [esp + 0x13], 0
cmp byte [esp + 0x13], 0
jne 0x10044e96
mov edx, dword [esp + 0x64]
mov cl, byte [eax + edx]
and cl, 3
mov ebx, eax
cmp cl, 1
jne 0x10044e86
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
jmp 0x10044e91
or ecx, 0xffffffff
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], ecx
mov byte [esp + 0x13], 1
cmp eax, dword [esp + 0x30]
jge 0x10044e9f
inc eax
jmp 0x10044ea3
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov ecx, dword [ebp + ebx*8 + 4]
mov esi, edx
sub esi, ecx
jns 0x10044eb5
mov esi, ecx
sub esi, edx
cmp esi, dword [esp + 0x74]
jle 0x10044ec5
mov byte [esp + 0x13], 0
jmp 0x10044f4b
mov esi, dword [ebp + eax*8 + 4]
mov edi, esi
sub edi, ecx
jns 0x10044ed9
sub ecx, esi
mov edx, ecx
mov dword [esp + 0x4c], edx
jmp 0x10044edf
mov edx, edi
mov dword [esp + 0x4c], edi
cmp edx, 5
jle 0x10044f0a
mov esi, dword [ebp + eax*8]
mov ecx, dword [ebp + ebx*8]
mov edi, esi
sub edi, ecx
jns 0x10044ef6
sub ecx, esi
jmp 0x10044ef8
mov ecx, edi
lea edx, [edx + edx*4]
add edx, edx
add edx, edx
cmp ecx, edx
jg 0x10044f0a
mov byte [esp + 0x13], 0
jmp 0x10044f4b
mov ecx, dword [esp + 0x64]
mov dl, byte [eax + ecx]
and dl, 3
cmp dl, 1
jne 0x10044f28
cmp dword [esp + 0x40], 0
mov dword [esp + 0x44], eax
jge 0x10044f28
mov dword [esp + 0x40], eax
mov esi, dword [ebp + eax*8]
mov ecx, dword [ebp + ebx*8]
cmp ecx, esi
mov edi, esi
setl dl
sub edi, ecx
jns 0x10044f3f
sub ecx, esi
mov edi, ecx
cmp dl, byte [esp + 0x23]
jne 0x10044f4b
cmp edi, dword [esp + 0x48]
jge 0x10044f5a
cmp eax, dword [esp + 0x28]
jne 0x10044e64
jmp 0x10044ff3
mov esi, dword [ebp + ebx*8 + 4]
mov edi, dword [ebp + ebx*8]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x44]
lea ebx, [ebx]
cmp eax, dword [esp + 0x30]
jge 0x10044f79
inc eax
jmp 0x10044f7d
mov eax, dword [esp + 0x24]
mov edx, dword [ebp + eax*8 + 4]
mov ecx, edx
sub ecx, esi
jns 0x10044f8b
mov ecx, esi
sub ecx, edx
cmp ecx, 5
jle 0x10044fb1
mov ecx, dword [esp + 0x34]
mov edx, dword [ebp + ecx*8]
mov ecx, edx
sub ecx, edi
jns 0x10044fa2
mov ecx, edi
sub ecx, edx
mov edx, dword [esp + 0x4c]
lea edx, [edx + edx*4]
add edx, edx
add edx, edx
cmp ecx, edx
jle 0x10045023
mov ecx, dword [esp + 0x64]
mov dl, byte [eax + ecx]
and dl, 3
mov ebx, eax
cmp dl, 1
jne 0x10044fcd
cmp dword [esp + 0x40], 0
jge 0x10044fcd
mov dword [esp + 0x40], eax
cmp eax, dword [esp + 0x28]
jne 0x10044f70
mov dword [esp + 0x44], ebx
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x14], esi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x78]
add dword [esp + 0x14], eax
cmp dword [esp + 0x1c], 0
jl 0x10045049
cmp dword [esp + 0x2c], 0
jl 0x10045049
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
mov ecx, dword [ebp + ecx*8]
mov eax, dword [ebp + edx*8]
mov edx, ecx
sub edx, eax
jns 0x10045036
sub eax, ecx
jmp 0x10045038
cmp eax, dword [esp + 0x24]
mov dword [esp + 0x44], ebx
jle 0x10045030
dec eax
jmp 0x10044fd7
mov eax, dword [esp + 0x30]
jmp 0x10044fd7
mov eax, edx
mov ecx, dword [esp + 0x148]
mov edx, dword [ecx + 0x28]
shr edx, 3
cmp eax, edx
ja 0x10045081
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x28]
mov dl, byte [eax + ecx]
and dl, 3
cmp dl, 1
jne 0x1004506b
mov ecx, dword [esp + 0x3c]
mov dl, byte [eax + ecx]
and dl, 3
cmp dl, 1
je 0x10045081
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x14]
mov dword [esp + eax*4 + 0xe0], ecx
inc eax
mov dword [esp + 0x50], eax
jmp 0x10045092
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x7c], edx
inc eax
mov dword [esp + 0x54], eax
mov edx, dword [esp + 0x58]
mov al, byte [edx]
test al, al
jne 0x10044b10
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x50]
test esi, esi
jne 0x100450b4
test edi, edi
je 0x10045187
lea ecx, [esp + 0xe0]
mov ebx, edi
call fcn.10040540
lea ecx, [esp + 0x7c]
mov ebx, esi
call fcn.10040540
mov ebp, dword [esp + 0x148]
mov eax, dword [ebp + 0x530]
lea ecx, [eax*8]
sub ecx, eax
inc eax
lea ecx, [ebp + ecx*4 + 0x534]
mov dword [ebp + 0x530], eax
test esi, esi
jne 0x1004510a
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov eax, dword [esp + eax*4 + 0xe0]
mov dword [ecx + 0xc], eax
mov dword [ecx], eax
jmp 0x10045137
mov eax, esi
cdq
sub eax, edx
sar eax, 1
test edi, edi
jne 0x10045120
mov eax, dword [esp + eax*4 + 0x7c]
mov dword [ecx + 0xc], eax
mov dword [ecx], eax
jmp 0x10045137
mov edx, dword [esp + eax*4 + 0x7c]
mov dword [ecx], edx
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov eax, dword [esp + eax*4 + 0xe0]
mov dword [ecx + 0xc], eax
mov esi, dword [ecx]
mov edi, dword [esp + 0x38]
cmp dword [ecx + 0xc], esi
je 0x10045167
mov eax, dword [ecx + 0xc]
mov bx, word [edi + 4]
cmp eax, esi
setg dl
movzx dx, dl
and bx, 1
xor dx, bx
je 0x10045167
add eax, esi
cdq
sub eax, edx
sar eax, 1
mov dword [ecx + 0xc], eax
mov dword [ecx], eax
mov dword [ecx + 0x18], 0
test byte [edi + 4], 1
je 0x1004517b
mov dword [ecx + 0x18], 2
test byte [edi + 4], 2
je 0x10045192
or dword [ecx + 0x18], 4
jmp 0x10045192
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0x148]
mov eax, dword [edi + 8]
add edi, 8
mov dword [esp + 0x38], edi
cmp eax, 0x206
jne 0x10044af4
pop esi
pop ebx
pop edi
pop ebp
add esp, 0x134
ret