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

Disassembly:
sub esp, 0x28
mov eax, dword [esp + 0x68]
mov ecx, eax
shl dword [esp + 0x60], cl
mov edx, dword [esp + 0x5c]
push ebx
shl edx, cl
mov ebx, 3
push ebp
xor ecx, ecx
mov dword [esp + 0x64], edx
push esi
mov esi, dword [esp + 0x5c]
mov ebp, 1
test esi, esi
mov dword [esp + 0x14], ebp
push edi
setne cl
mov edi, ebx
sub ebx, dword [esp + 0x50]
sub eax, ecx
add dword [esp + 0x74], eax
mov eax, dword [esp + 0x4c]
sub edi, eax
mov ecx, edi
mov dword [esp + 0x14], edi
rol dword [esp + 0x18], cl
cmp dword [esp + 0x58], 0
mov dword [esp + 0x10], ebx
je 0x1044414e
test edx, edx
jne 0x1044414e
cmp dword [esp + 0x70], edx
jne 0x1044414e
xor eax, eax
mov dword [esp + 0x6c], eax
cmp dword [esp + 0x68], eax
jle 0x10444781
mov edx, dword [esp + 0x64]
lea ecx, [ebx + edi]
mov dword [esp + 0x70], ecx
mov ecx, ebx
rol ebp, cl
movzx ecx, byte [edx + eax*2]
xor esi, esi
mov dword [esp + 0x78], ecx
movzx ecx, byte [edx + eax*2 + 1]
mov dword [esp + 0x74], ecx
test ebp, ebp
jle 0x10444137
mov ecx, dword [esp + 0x18]
mov ebx, eax
mov eax, dword [esp + 0x78]
lea edx, [ecx + ecx]
mov ecx, dword [esp + 0x70]
shl ebx, cl
mov ecx, edi
mov edi, dword [esp + 0x74]
shl edi, cl
mov ecx, dword [esp + 0x10]
shl eax, cl
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x50], edx
lea eax, [eax + eax*8]
shl eax, 4
add eax, edi
lea edi, [ecx + eax*2]
nop dword [eax + eax]
mov ecx, dword [esp + 0x14]
mov eax, esi
shl eax, cl
mov ecx, dword [esp + 0x40]
add eax, ebx
push edx
push edi
lea eax, [ecx + eax*2]
push eax
call fcn.105137c0
mov edx, dword [esp + 0x5c]
inc esi
add esp, 0xc
add edi, 0x120
cmp esi, ebp
jl 0x10444100
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x64]
inc eax
mov dword [esp + 0x6c], eax
cmp eax, dword [esp + 0x68]
jl 0x104440b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
test esi, esi
jne 0x10444338
mov ebp, dword [esp + 0x58]
test ebp, ebp
je 0x10444167
cmp dword [ebp], esi
jne 0x1044428f
mov eax, dword [esp + 0x68]
xor edx, edx
dec eax
test eax, eax
jle 0x1044422a
mov ecx, dword [esp + 0x64]
dec eax
shr eax, 1
add ecx, 2
inc eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
add eax, eax
mov dword [esp + 0x24], eax
nop
movzx esi, byte [ecx]
movzx edi, byte [ecx + 1]
mov edx, esi
movzx ebx, byte [ecx - 2]
movzx ebp, byte [ecx - 1]
mov ecx, ebx
mov eax, dword [esp + 0x54]
shl edx, 4
add edx, edi
shl ecx, 4
shl edx, 2
add ecx, ebp
add eax, edx
shl ecx, 2
push eax
mov eax, dword [esp + 0x58]
add eax, ecx
push eax
push dword [esp + 0x80]
mov eax, dword [esp + 0x68]
add eax, edx
push eax
mov eax, dword [esp + 0x6c]
add eax, ecx
push eax
lea eax, [esi + esi*8]
shl eax, 4
add eax, edi
shl eax, 4
add eax, dword [esp + 0x5c]
push 0x90
push eax
lea eax, [ebx + ebx*8]
shl eax, 4
add eax, ebp
shl eax, 4
add eax, dword [esp + 0x64]
push eax
call dword [0x10b48518]
mov ecx, dword [esp + 0x3c]
add esp, 0x20
add ecx, 4
sub dword [esp + 0x20], 1
mov dword [esp + 0x1c], ecx
jne 0x10444190
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov ebp, dword [esp + 0x58]
test byte [esp + 0x68], 1
je 0x10444278
mov eax, dword [esp + 0x64]
push dword [esp + 0x78]
movzx ecx, byte [eax + edx*2]
movzx edx, byte [eax + edx*2 + 1]
mov esi, ecx
mov eax, dword [esp + 0x60]
shl esi, 4
add esi, edx
shl esi, 2
add eax, esi
push eax
lea eax, [ecx + ecx*8]
shl eax, 4
add eax, edx
shl eax, 4
add eax, dword [esp + 0x50]
push 0x90
push eax
call dword [0x10b4851c]
mov ecx, dword [esp + 0x64]
add esp, 0x10
mov dword [esi + ecx], eax
mov edx, dword [esp + 0x6c]
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x4c]
test ebp, ebp
je 0x1044428f
mov dword [ebp], 1
mov ebp, dword [esp + 0x50]
mov ecx, eax
mov eax, 8
sar eax, cl
mov ecx, ebp
mov dword [esp + 0x60], eax
mov eax, 8
sar eax, cl
cmp dword [esp + 0x3c], 0
mov dword [esp + 0x50], eax
je 0x10444520
mov eax, dword [0x10b4852c]
xor ebx, ebx
mov dword [esp + 0x28], eax
mov eax, dword [0x10b48528]
mov dword [esp + 0x2c], eax
mov eax, dword [0x10b48524]
mov dword [esp + 0x30], eax
mov eax, dword [0x10b48520]
mov dword [esp + 0x34], eax
cmp dword [esp + 0x68], ebx
jle 0x10444781
mov ebp, dword [esp + 0x6c]
xor ecx, ecx
test esi, esi
je 0x1044441f
test edx, edx
mov eax, 2
cmove ecx, eax
xor eax, eax
cmp dword [esp + 0x70], eax
sete al
or ecx, eax
mov eax, dword [esp + ecx*4 + 0x28]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x64]
movzx edx, byte [eax + ebx*2]
movzx esi, byte [eax + ebx*2 + 1]
test ebp, ebp
je 0x104443b0
mov ecx, dword [esp + 0x54]
mov eax, edx
shl eax, 4
add eax, esi
mov eax, dword [ecx + eax*4]
jmp 0x104443b2
cmp esi, 1
jne 0x1044428f
mov ebp, dword [esp + 0x50]
cmp eax, ebp
je 0x10444293
xor esi, esi
cmp dword [esp + 0x68], esi
jle 0x104443a7
mov edi, dword [esp + 0x54]
test eax, eax
mov ebx, dword [esp + 0x64]
mov ecx, 0x10989884
mov edx, 0x109898a4
cmove ecx, edx
nop dword [eax]
movzx edx, byte [ebx + esi*2]
movzx eax, byte [ebx + esi*2 + 1]
inc esi
shl edx, 4
add edx, eax
mov eax, dword [edi + edx*4]
mov eax, dword [ecx + eax*4]
mov dword [edi + edx*4], eax
cmp esi, dword [esp + 0x68]
jl 0x10444370
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x4c]
jmp 0x10444293
mov esi, dword [esp + 0x60]
jmp 0x10444293
xor eax, eax
push dword [esp + 0x50]
mov ecx, edi
mov edi, dword [esp + 0x4c]
push dword [esp + 0x64]
shl esi, cl
push dword [esp + 0x80]
mov ecx, dword [esp + 0x80]
push ecx
push ecx
mov ecx, dword [esp + 0x24]
push eax
push dword [esp + 0x88]
lea eax, [edx + edx*8]
shl edx, cl
shl eax, 4
shl eax, cl
add eax, esi
push ebp
lea eax, [edi + eax*2]
push eax
mov eax, dword [esp + 0x68]
imul edx, eax
push eax
add edx, esi
add edx, dword [esp + 0x64]
push edx
call dword [esp + 0x84]
mov edi, dword [esp + 0x40]
inc ebx
add esp, 0x2c
cmp ebx, dword [esp + 0x68]
jl 0x10444313
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
xor eax, eax
cmp dword [esp + 0x70], eax
mov dword [esp + 0x4c], eax
sete cl
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x64]
movzx edx, byte [ecx + eax*2]
movzx eax, byte [ecx + eax*2 + 1]
mov ecx, edx
shl ecx, 4
add ecx, eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x5c]
mov ebx, dword [eax + ecx*4]
mov esi, ebx
sar esi, 6
test esi, esi
je 0x1044446c
bsr eax, esi
cmp eax, 0xc
jge 0x10444465
bsr eax, esi
jmp 0x1044446e
mov eax, 0xc
jmp 0x1044446e
xor eax, eax
test ebx, ebx
je 0x10444480
add eax, 4
imul eax, ebp
add eax, 8
sar eax, 4
jmp 0x10444482
xor eax, eax
xor esi, esi
mov ebx, 2
test eax, eax
cmove esi, ebx
or esi, dword [esp + 0x24]
test ebp, ebp
je 0x1044449f
mov ebx, dword [esp + 0x54]
mov ebx, dword [ebx + ecx*4]
jmp 0x104444a1
xor ebx, ebx
push dword [esp + 0x50]
mov ecx, edi
push dword [esp + 0x64]
shl dword [esp + 0x60], cl
push dword [esp + 0x80]
mov ecx, dword [esp + 0x80]
push ecx
push ecx
mov ecx, dword [esp + 0x24]
push ebx
push dword [esp + 0x88]
push eax
lea eax, [edx + edx*8]
shl edx, cl
shl eax, 4
shl eax, cl
add eax, dword [esp + 0x78]
lea eax, [eax*2]
add eax, dword [esp + 0x68]
push eax
mov eax, dword [esp + 0x68]
imul edx, eax
push eax
add edx, dword [esp + 0x80]
add edx, dword [esp + 0x64]
push edx
call dword [esp + esi*4 + 0x54]
mov eax, dword [esp + 0x78]
add esp, 0x2c
mov ebp, dword [esp + 0x6c]
inc eax
mov dword [esp + 0x4c], eax
cmp eax, dword [esp + 0x68]
jl 0x10444430
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
mov eax, dword [0x10b4853c]
xor ebp, ebp
mov dword [esp + 0x28], eax
mov eax, dword [0x10b48538]
mov dword [esp + 0x2c], eax
mov eax, dword [0x10b48534]
mov dword [esp + 0x30], eax
mov eax, dword [0x10b48530]
mov dword [esp + 0x34], eax
cmp dword [esp + 0x68], ebp
jle 0x10444781
lea eax, [ebx + edi]
xor ecx, ecx
mov dword [esp + 0x20], eax
test esi, esi
je 0x1044464a
test edx, edx
mov eax, 2
cmove ecx, eax
xor eax, eax
cmp dword [esp + 0x70], eax
sete al
or ecx, eax
mov eax, dword [esp + ecx*4 + 0x28]
mov dword [esp + 0x24], eax
nop
mov eax, dword [esp + 0x64]
movzx ebx, byte [eax + ebp*2]
movzx esi, byte [eax + ebp*2 + 1]
test edx, edx
je 0x104445a1
mov ecx, dword [esp + 0x54]
mov eax, ebx
shl eax, 4
add eax, esi
mov eax, dword [ecx + eax*4]
jmp 0x104445a3
xor eax, eax
cmp dword [esp + 0x58], 0
je 0x104445c4
mov ecx, dword [esp + 0x18]
mov edx, ebp
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x20]
shl edx, cl
mov ecx, edi
shl esi, cl
mov ecx, dword [esp + 0x10]
jmp 0x104445df
mov ecx, dword [esp + 0x44]
mov edx, ebx
mov dword [esp + 0x4c], ecx
mov ecx, edi
shl esi, cl
mov ecx, dword [esp + 0x10]
shl edx, cl
imul edx, dword [esp + 0x44]
add edx, esi
push dword [esp + 0x50]
push dword [esp + 0x64]
push dword [esp + 0x80]
push dword [esp + 0x80]
push dword [esp + 0x84]
push eax
push dword [esp + 0x88]
lea eax, [ebx + ebx*8]
push dword [esp + 0x88]
shl eax, 4
shl eax, cl
mov ecx, dword [esp + 0x68]
add eax, esi
lea eax, [ecx + eax*2]
push eax
mov eax, dword [esp + 0x64]
push dword [esp + 0x70]
lea eax, [eax + edx*2]
push eax
call dword [esp + 0x50]
mov edx, dword [esp + 0x98]
inc ebp
add esp, 0x2c
cmp ebp, dword [esp + 0x68]
jl 0x10444580
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
mov ebp, dword [esp + 0x6c]
xor eax, eax
cmp dword [esp + 0x70], eax
mov dword [esp + 0x4c], eax
sete cl
mov dword [esp + 0x24], ecx
nop
mov edx, dword [esp + 0x64]
movzx ecx, byte [edx + eax*2]
movzx esi, byte [edx + eax*2 + 1]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x1c], ecx
shl ecx, 4
add ecx, esi
mov ebx, dword [eax + ecx*4]
mov edx, ebx
sar edx, 6
test edx, edx
je 0x1044469a
bsr eax, edx
cmp eax, 0xc
jge 0x10444693
bsr eax, edx
jmp 0x1044469c
mov eax, 0xc
jmp 0x1044469c
xor eax, eax
test ebx, ebx
je 0x104446ae
add eax, 4
imul eax, ebp
add eax, 8
sar eax, 4
jmp 0x104446b0
xor eax, eax
xor ebx, ebx
mov edx, 2
test eax, eax
cmove ebx, edx
or ebx, dword [esp + 0x24]
test ebp, ebp
je 0x104446d1
mov edx, dword [esp + 0x54]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x6c], ecx
jmp 0x104446d9
mov dword [esp + 0x6c], 0
cmp dword [esp + 0x58], 0
je 0x104446fc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
shl edx, cl
mov ecx, edi
shl esi, cl
mov ecx, dword [esp + 0x10]
jmp 0x10444719
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x14], ecx
mov ecx, edi
shl esi, cl
mov ecx, dword [esp + 0x10]
shl edx, cl
imul edx, dword [esp + 0x44]
add edx, esi
push dword [esp + 0x50]
push dword [esp + 0x64]
push dword [esp + 0x80]
push dword [esp + 0x80]
push dword [esp + 0x84]
push dword [esp + 0x80]
push dword [esp + 0x88]
push eax
mov eax, dword [esp + 0x3c]
lea eax, [eax + eax*8]
shl eax, 4
shl eax, cl
mov ecx, dword [esp + 0x68]
add eax, esi
lea eax, [ecx + eax*2]
push eax
mov eax, dword [esp + 0x64]
push dword [esp + 0x38]
lea eax, [eax + edx*2]
push eax
call dword [esp + ebx*4 + 0x54]
mov eax, dword [esp + 0x78]
add esp, 0x2c
inc eax
mov dword [esp + 0x4c], eax
cmp eax, dword [esp + 0x68]
jl 0x10444660
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret