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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x19c
mov eax, dword [ebp + 8]
mov dword [esp + 0x74], edx
push ebx
mov ebx, ecx
mov dword [esp + 0x2c], ebx
push esi
push edi
cmp eax, 1
jne 0x1011f749
mov esi, dword [edx + 0xc]
mov edi, dword [edx + 0x10]
jmp 0x1011f74f
mov esi, dword [edx + 4]
mov edi, dword [edx + 8]
imul eax, eax, 0x544
mov dword [ebx + 0x2c], esi
mov dword [ebx + 0x30], edi
mov dword [ebx + 0x34], SysReAllocString
mov dword [ebx + 0x38], 0
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x18], esi
mov dword [esp + 0x50], esi
mov ecx, dword [eax + edx + 0x34]
mov eax, dword [eax + edx + 0x2c]
mov dword [ebx], esi
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x94], ecx
mov ecx, dword [edx + 0x1c]
mov edx, dword [edx + 0x18]
mov dword [esp + 0x98], eax
mov dword [esi], edi
cmp eax, 1
jl 0x1011fd61
movsx eax, word [ecx + 0xc]
mov dword [esp + 0x28], eax
mov esi, eax
cmp edx, 1
jle 0x1011fd61
add ecx, 0x34
mov ebx, eax
dec edx
nop dword [eax]
movsx eax, word [ecx]
lea ecx, [ecx + 0x28]
cmp eax, esi
cmovl esi, eax
cmp eax, ebx
cmovg ebx, eax
mov dword [esp + 0x7c], ebx
sub edx, 1
jne 0x1011f7c0
mov dword [esp + 0x28], ebx
cmp esi, ebx
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x54], esi
jge 0x1011fd61
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x18]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
add eax, edi
mov dword [esp + 0x44], eax
mov dword [ebx], eax
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x18]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x44]
add ecx, edi
mov eax, edx
mov dword [esp + 0x78], ecx
and eax, 0xffffffc0
mov dword [ebx + 4], ecx
mov dword [esp + 0x60], eax
and edx, 0xffffffe0
mov dword [ebx + 8], eax
lea eax, [ecx + 0x3f]
and eax, 0xffffffc0
mov dword [esp + 0x2c], edx
mov dword [ebx + 0xc], eax
mov eax, ecx
and eax, 0xffffffe0
mov dword [ebx + 0x10], edx
lea edi, [edx + 0x20]
mov dword [esp + 0x30], eax
mov dword [esp + 0x20], edi
mov dword [ebx + 0x14], edi
mov dword [ebx + 0x18], eax
lea edx, [eax + 0x20]
mov dword [esp + 0x88], edx
mov dword [ebx + 0x1c], edx
mov edx, dword [esp + 0x44]
cmp edi, ecx
jle 0x1011f8a9
mov dword [ebx + 0x14], ecx
mov edi, ecx
mov dword [esp + 0x20], ecx
cmp eax, edx
jge 0x1011f8b4
mov dword [ebx + 0x18], edx
mov dword [esp + 0x30], edx
mov eax, ecx
sub eax, edx
mov dword [esp + 0x38], eax
mov dword [ebx + 0x20], eax
cmp eax, 0x40
jg 0x1011f8d6
mov edi, edx
mov dword [ebx + 0x14], edx
mov dword [ebx + 0x18], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x20], edi
jmp 0x1011f8da
mov ecx, dword [esp + 0x30]
sub ecx, edi
mov edx, 0x10
mov edi, dword [esp + 0x88]
sub edi, dword [esp + 0x2c]
mov dword [ebx + 0x24], ecx
mov dword [ebx + 0x28], edi
cmp eax, 0x80
jg 0x1011f90e
cmp eax, 0x60
mov dword [esp + 0x1c], 4
mov edx, 8
cmovle edx, dword [esp + 0x1c]
sub eax, edx
cmp ecx, eax
jge 0x1011f919
mov dword [ebx + 0x24], eax
mov ecx, eax
mov eax, dword [esp + 0x38]
add eax, edx
mov dword [esp + 0x4c], edi
cmp edi, eax
jle 0x1011f930
mov dword [ebx + 0x28], eax
mov edi, eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x38]
lea eax, [eax + eax*2]
cdq
and edx, 3
add eax, edx
sar eax, 2
cmp ecx, eax
jge 0x1011f949
mov dword [ebx + 0x24], eax
mov ecx, eax
mov eax, dword [esp + 0x38]
lea eax, [eax + eax*4]
cdq
and edx, 3
add eax, edx
sar eax, 2
cmp edi, eax
jle 0x1011f966
mov dword [ebx + 0x28], eax
mov edi, eax
mov dword [esp + 0x4c], eax
cmp ecx, edi
jg 0x1011fcd1
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x38]
sub eax, esi
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x44]
mov dword [esp + 0x28], eax
cdq
xor eax, edx
mov dword [esp + 0x24], ebx
sub dword [esp + 0x24], esi
sub eax, edx
cdq
mov dword [esp + 0x58], edx
mov edx, edi
sub edx, ecx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x64], edx
mov eax, ecx
mov edx, esi
sub eax, edi
mov esi, dword [esp + 0x24]
sub edx, ecx
sub esi, edi
mov dword [esp + 0x18], eax
add esi, ecx
add edx, edi
mov ecx, dword [esp + 0x2c]
sub ecx, ebx
mov dword [esp + 0x1c], edx
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x8c], ecx
mov ecx, esi
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x78]
add eax, edi
mov dword [esp + 0x14], esi
cmp eax, edi
jl 0x1011fa09
mov eax, dword [esp + 0x2c]
cmp edx, eax
jge 0x1011f9fc
mov eax, dword [esp + 0x8c]
add eax, ecx
add esi, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x14], esi
cmp edx, eax
mov edi, eax
cmovge edi, edx
mov dword [esp + 0x10], edi
jmp 0x1011fa23
mov eax, dword [esp + 0x20]
mov edi, edx
mov dword [esp + 0x10], edi
cmp edx, eax
jle 0x1011fa23
add esi, ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], esi
mov edi, eax
mov edx, dword [esp + 0x44]
mov eax, edi
sub eax, edx
mov ecx, edx
sub ecx, edi
cmp edi, edx
mov edx, dword [esp + 0x78]
cmovge ecx, eax
cmp esi, edx
jge 0x1011fa44
mov eax, edx
sub eax, esi
add eax, ecx
jmp 0x1011fa4a
mov eax, ecx
sub eax, edx
add eax, esi
mov edx, dword [esp + 0x18]
lea eax, [eax + eax*4]
add eax, eax
mov dword [esp + 0x74], eax
mov eax, edx
sar eax, 0x1f
and eax, 0xfffffffe
inc eax
mov ecx, eax
neg ecx
cmp dword [esp + 0x28], 0
cmovge ecx, eax
cmp dword [esp + 0x58], 0
mov dword [esp + 0x48], ecx
ja 0x1011fa8d
cmp dword [esp + 0x5c], 0
ja 0x1011fa8d
mov eax, SysReAllocString
mov dword [esp + 0x6c], 0
jmp 0x1011facb
mov eax, dword [esp + 0x64]
test edx, edx
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
cmovns eax, edx
push dword [esp + 0x58]
cdq
push dword [esp + 0x60]
shld edx, eax, 0x10
shrd ecx, esi, 1
shl eax, 0x10
shr esi, 1
add eax, ecx
adc edx, esi
push edx
push eax
call fcn.1016c2f0
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x6c], edx
mov edx, eax
neg edx
test ecx, ecx
cmovns edx, eax
add edx, dword [esp + 0x50]
mov dword [esp + 0x68], edx
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x3c]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x90], eax
sub esi, dword [esp + 0x10]
mov eax, edi
sub eax, dword [esp + 0x90]
lea edi, [esp + 0xa0]
mov edx, dword [esp + 0x30]
mov ecx, 0x41
mov dword [esp + 0x14], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x10]
sub ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x48], ecx
mov ecx, esi
neg ecx
add edx, ecx
lea eax, [edi + esi]
cmp eax, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
cmovge edx, edi
add eax, esi
mov esi, dword [esp + 0x88]
sub edx, dword [esp + 0x60]
cmp eax, esi
mov dword [esp + 0x84], edx
lea edi, [ecx + esi]
cmovle edi, dword [esp + 0x20]
sub edi, dword [esp + 0x60]
test edx, edx
js 0x1011fc9e
cmp edx, edi
jg 0x1011fc9e
cmp edi, 0x40
jg 0x1011fc9e
mov ebx, dword [esp + 0x94]
mov eax, dword [esp + 0x98]
add ebx, 6
mov dword [esp + 0x10], eax
movsx eax, word [ebx]
movsx esi, word [ebx + 2]
sub esi, eax
movsx eax, word [ebx - 4]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x3c]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
sub eax, dword [esp + 0x48]
mov edx, dword [esp + 0x84]
add eax, edx
add eax, dword [esp + 0x14]
mov ecx, eax
inc eax
and ecx, 0x3f
mov ecx, dword [ecx*4 + 0x1018a870]
imul ecx, esi
add dword [esp + edx*4 + 0xa0], ecx
inc edx
cmp edx, edi
jle 0x1011fbf4
add ebx, 0x2c
sub dword [esp + 0x10], 1
jne 0x1011fba2
mov ebx, dword [esp + 0x34]
lea esi, [esp + 0xa0]
mov edx, dword [esp + 0x84]
mov ecx, edx
sub ecx, dword [esp + 0x48]
sub edi, edx
add ecx, dword [esp + 0x74]
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0x3c], eax
lea esi, [esi + edx*4]
mov eax, dword [ebx + 0x30]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x34]
mov ebx, dword [esp + 0x74]
sub dword [esp + 0x14], ebx
inc edi
mov ebx, dword [esp + 0x34]
nop dword [eax]
mov edx, dword [esi]
cmp edx, eax
jg 0x1011fc6d
jne 0x1011fc87
cmp ecx, dword [ebx + 0x38]
jge 0x1011fc87
mov eax, dword [esp + 0x68]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x14]
add eax, ecx
mov dword [ebx + 0x34], edx
mov dword [esp + 0x10], eax
mov eax, edx
mov dword [ebx + 0x38], ecx
add esi, 4
inc ecx
sub edi, 1
jne 0x1011fc60
mov eax, dword [esp + 0x3c]
mov dword [ebx + 0x2c], eax
mov eax, dword [esp + 0x10]
mov dword [ebx + 0x30], eax
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
inc eax
mov ecx, dword [esp + 0x24]
dec edx
mov edi, dword [esp + 0x38]
inc ecx
dec dword [esp + 0x64]
mov dword [esp + 0x18], eax
add eax, edi
cmp eax, dword [esp + 0x4c]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], ecx
jle 0x1011f9d3
mov edi, dword [ebx + 0x2c]
mov esi, edi
sub esi, dword [esp + 0x50]
mov ebx, dword [ebx + 0x30]
mov dword [esp + 0x68], esi
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x68]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x40]
add eax, ebx
mov dword [esp + 0x68], esi
mov dword [ecx + 0xac0], eax
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x68]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x40]
add eax, ebx
mov dword [ecx + 0xac4], eax
mov eax, dword [ebp + 0xc]
mov dword [eax], edi
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret