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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xd0
mov esi, esp
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov edx, dword [0x2f35fc]
mov edi, dword [0x2f35f8]
imul edx, edx
imul edx, edx, 7
sub edx, 1
imul edi, edi
cmp edx, edi
mov dword [esi + 0xc4], eax
mov dword [esi + 0xc0], ecx
je 0x100056f4
mov eax, 2
mov ecx, 4
mov dword [esi + 0xbc], eax
mov eax, ecx
mov dword [esi + 0xb8], ecx
call 0x10012400
mov eax, esp
mov ecx, dword [esi + 0xb8]
mov dword [esi + 0xb4], eax
mov eax, ecx
call 0x10012400
mov eax, esp
mov ecx, 0x44
mov dword [esi + 0xb0], eax
mov eax, ecx
call 0x10012400
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov ecx, 0x10
mov dword [esi + 0xac], eax
mov eax, ecx
call 0x10012400
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov ecx, dword [esi + 0xb8]
mov dword [esi + 0xa8], eax
mov eax, ecx
call 0x10012400
mov eax, esp
mov ecx, dword [esi + 0xb8]
mov dword [esi + 0xa4], eax
mov eax, ecx
call 0x10012400
mov eax, esp
mov ecx, 0x208
mov dword [esi + 0xa0], eax
mov eax, ecx
call 0x10012400
mov eax, esp
mov ecx, dword [esi + 0xb4]
mov edx, dword [esi + 0xc4]
mov dword [ecx], edx
mov edi, dword [esi + 0xb0]
mov ebx, dword [esi + 0xc0]
mov dword [edi], ebx
mov ecx, dword [0x2f35fc]
mov edx, dword [0x2f35f8]
imul ecx, ecx
add ecx, 1
mov edi, dword [esi + 0xbc]
mov dword [esi + 0x9c], eax
mov eax, edi
xor edi, edi
mov dword [esi + 0x98], edx
mov edx, edi
div ecx
add eax, 2
mov ecx, dword [esi + 0x98]
imul ecx, ecx
add ecx, 5
cmp eax, ecx
je 0x100056f4
jmp 0x1000533c
mov eax, 2
mov ecx, dword [0x2f35fc]
mov edx, dword [0x2f35f8]
imul ecx, ecx
add ecx, 1
xor edi, edi
mov dword [esi + 0x94], edx
mov edx, edi
div ecx
add eax, 2
mov ecx, dword [esi + 0x94]
imul ecx, ecx
add ecx, 5
cmp eax, ecx
je 0x1000575d
mov eax, 0
mov ecx, 0x10
mov edx, 0x44
mov edi, dword [esi + 0xac]
sub esp, 0xc
mov dword [esp], edi
mov dword [esp + 4], 0
mov dword [esp + 8], 0x44
mov dword [esi + 0x90], eax
mov dword [esi + 0x8c], ecx
mov dword [esi + 0x88], edx
call 0x10012430
add esp, 0xc
mov eax, dword [esi + 0xa8]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x10
call 0x10012430
add esp, 0xc
mov eax, dword [esi + 0xac]
mov dword [eax], 0x44
mov dword [eax + 0x2c], 0x80
sub esp, 4
mov ecx, esp
mov dword [ecx], 0x2f3278
mov ecx, dword [0x2f201c]
call ecx
add esp, 4
mov ecx, dword [0x2f354c]
mov edx, dword [0x2f35fc]
mov edi, dword [0x2f35f8]
imul edx, edx
imul edx, edx, 7
sub edx, 1
imul edi, edi
cmp edx, edi
mov dword [esi + 0x84], eax
mov dword [esi + 0x80], ecx
je 0x1000575d
jmp 0x1000544d
mov eax, 2
mov ecx, dword [0x2f35fc]
mov edx, dword [0x2f35f8]
imul ecx, ecx
add ecx, 1
xor edi, edi
mov dword [esi + 0x7c], edx
mov edx, edi
div ecx
add eax, 2
mov ecx, dword [esi + 0x7c]
imul ecx, ecx
add ecx, 5
cmp eax, ecx
je 0x10005823
sub esp, 8
mov eax, esp
mov ecx, dword [esi + 0x80]
mov dword [eax], ecx
mov dword [eax + 4], 0x2f3278
mov eax, dword [0x2f2010]
call eax
mov ecx, dword [esi + 0xb0]
mov edx, dword [ecx]
sub esp, 0x28
mov edi, esp
mov ebx, dword [esi + 0xa8]
mov dword [edi + 0x24], ebx
mov ecx, dword [esi + 0xac]
mov dword [edi + 0x20], ecx
mov dword [edi + 4], edx
mov dword [edi + 0x1c], 0
mov dword [edi + 0x18], 0
mov dword [edi + 0x14], 0x8000000
mov dword [edi + 0x10], 0
mov dword [edi + 0xc], 0
mov dword [edi + 8], 0
mov dword [edi], 0
call eax
mov ecx, dword [esi + 0xa4]
mov dword [ecx], eax
mov eax, dword [0x2f35fc]
mov edx, dword [0x2f35f8]
imul eax, eax
imul eax, eax, 7
sub eax, 1
imul edx, edx
cmp eax, edx
je 0x10005823
jmp 0x10005529
sub esp, 4
mov eax, esp
mov dword [eax], 0x2f3278
mov eax, dword [0x2f201c]
call eax
add esp, 4
mov ecx, dword [esi + 0xa0]
mov dword [ecx], 0
mov edx, dword [esi + 0xa4]
cmp dword [edx], 0
mov dword [esi + 0x78], eax
je 0x10005584
mov eax, dword [0x2f3568]
mov ecx, dword [esi + 0xa8]
mov edx, dword [ecx]
sub esp, 8
mov edi, esp
mov dword [edi], edx
mov dword [edi + 4], 0xffffffff
call eax
mov dword [esi + 0x74], eax
jmp 0x10005593
mov eax, dword [0x2f3570]
call eax
mov ecx, dword [esi + 0xa0]
mov dword [ecx], eax
mov eax, dword [0x2f35fc]
mov ecx, dword [0x2f35f8]
imul eax, eax
imul eax, eax, 7
sub eax, 1
imul ecx, ecx
cmp eax, ecx
je 0x100058d5
mov eax, 2
mov ecx, 0x104
lea edx, [0x2f3010]
mov edi, edx
add edi, 0x4d
add edx, 0x73
mov ebx, 0
mov dword [esi + 0x70], eax
mov eax, 0x208
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x9c]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x208
mov dword [esi + 0x68], ebx
mov dword [esi + 0x64], ecx
mov dword [esi + 0x60], edi
mov dword [esi + 0x5c], edx
call 0x10012430
add esp, 0xc
mov eax, dword [0x2f358c]
mov ecx, dword [esi + 0xa0]
mov edx, dword [ecx]
mov edi, dword [esi + 0xb0]
mov ebx, dword [edi]
sub esp, 0x18
mov ecx, dword [esi + 0x9c]
mov dword [esp], ecx
mov dword [esp + 4], 0x104
mov ecx, dword [esi + 0x60]
mov dword [esp + 8], ecx
mov ecx, dword [esi + 0x5c]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], edx
call eax
add esp, 0x18
mov ecx, dword [0x2f359c]
sub esp, 4
mov edx, esp
mov edi, dword [esi + 0x9c]
mov dword [edx], edi
mov dword [esi + 0x58], eax
call ecx
mov ecx, dword [0x2f35fc]
mov edx, dword [0x2f35f8]
imul ecx, ecx
add ecx, 1
mov edi, dword [esi + 0x70]
mov dword [esi + 0x54], eax
mov eax, edi
xor ebx, ebx
mov dword [esi + 0x50], edx
mov edx, ebx
div ecx
add eax, 2
mov ecx, dword [esi + 0x50]
imul ecx, ecx
add ecx, 5
cmp eax, ecx
je 0x100058d5
jmp 0x100056b5
mov eax, dword [esi + 0x54]
add eax, eax
mov ecx, dword [esi + 0xb4]
mov edx, dword [ecx]
sub esp, 0xc
mov edi, esp
mov dword [edi + 8], eax
mov eax, dword [esi + 0x9c]
mov dword [edi + 4], eax
mov dword [edi], edx
call fcn.100108b0
add esp, 0xc
mov ecx, dword [esi + 0xa0]
mov edx, dword [ecx]
mov dword [esi + 0x4c], eax
mov eax, edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov eax, 4
mov dword [esi + 0x48], eax
call 0x10012400
mov eax, esp
mov ecx, dword [esi + 0x48]
mov dword [esi + 0x44], eax
mov eax, ecx
call 0x10012400
mov eax, esp
mov ecx, dword [esi + 0x44]
mov edx, dword [esi + 0xc4]
mov dword [ecx], edx
mov edi, dword [esi + 0xc0]
mov dword [eax], edi
mov eax, dword [0x2f35f8]
mov ebx, eax
shl ebx, 1
mov dword [esi + 0x40], eax
mov eax, ebx
xor edx, edx
mov ecx, dword [esi + 0x40]
div ecx
mov ecx, edx
mov eax, ebx
sar eax, cl
mov edx, ebx
imul edx, eax
mov eax, ebx
mov dword [esi + 0x3c], edx
cdq
mov ecx, dword [esi + 0x3c]
idiv ecx
add eax, ebx
mov dword [0x2f35f8], eax
jmp 0x1000522c
mov eax, 0
mov ecx, 0x10
mov edx, 0x44
mov edi, dword [esi + 0xac]
sub esp, 0xc
mov dword [esp], edi
mov dword [esp + 4], 0
mov dword [esp + 8], 0x44
mov dword [esi + 0x38], eax
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], edx
call 0x10012430
add esp, 0xc
mov eax, dword [esi + 0xa8]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x10
call 0x10012430
add esp, 0xc
mov eax, dword [esi + 0xac]
mov dword [eax], 0x44
mov dword [eax + 0x2c], 0x80
sub esp, 4
mov ecx, esp
mov dword [ecx], 0x2f3278
mov ecx, dword [0x2f201c]
call ecx
add esp, 4
mov ecx, dword [0x2f35f8]
mov edx, ecx
sub edx, 1
mov dword [esi + 0x2c], eax
mov eax, edx
xor edx, edx
div ecx
sub edx, ecx
mov eax, edx
and eax, ecx
mov ecx, edx
shr eax, cl
and eax, edx
mov edi, edx
sub edi, eax
mov ecx, edi
sar edx, cl
mov eax, edx
xor eax, edi
xor eax, edx
add eax, edx
mov dword [0x2f35f8], eax
jmp 0x1000537e
sub esp, 8
mov eax, esp
mov ecx, dword [esi + 0x80]
mov dword [eax], ecx
mov dword [eax + 4], 0x2f3278
mov eax, dword [0x2f2010]
call eax
mov ecx, 1
mov edx, dword [esi + 0xb0]
mov edi, dword [edx]
sub esp, 0x28
mov ebx, esp
mov edx, dword [esi + 0xa8]
mov dword [ebx + 0x24], edx
mov edx, dword [esi + 0xac]
mov dword [ebx + 0x20], edx
mov dword [ebx + 4], edi
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x14], 0x8000000
mov dword [ebx + 0x10], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 8], 0
mov dword [ebx], 0
mov dword [esi + 0x28], ecx
call eax
mov ecx, dword [esi + 0xa4]
mov dword [ecx], eax
mov eax, dword [0x2f35fc]
xor eax, 1
mov ecx, eax
mov edx, dword [esi + 0x28]
sar edx, cl
and eax, edx
mov edi, edx
sub edi, eax
imul edi, edx
mov eax, edx
xor edx, edx
div edi
add edi, eax
mov ecx, edi
shr eax, cl
add edi, eax
mov dword [0x2f35fc], edi
jmp 0x10005489
mov eax, 0x104
lea ecx, [0x2f3010]
mov edx, ecx
add edx, 0x4d
add ecx, 0x73
mov edi, 0
mov ebx, 0x208
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x9c]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x208
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], edx
mov dword [esi + 0x18], ecx
mov dword [esi + 0x14], edi
call 0x10012430
add esp, 0xc
mov eax, dword [0x2f358c]
mov ecx, dword [esi + 0xa0]
mov edx, dword [ecx]
mov edi, dword [esi + 0xb0]
mov ebx, dword [edi]
sub esp, 0x18
mov ecx, dword [esi + 0x9c]
mov dword [esp], ecx
mov dword [esp + 4], 0x104
mov ecx, dword [esi + 0x1c]
mov dword [esp + 8], ecx
mov ecx, dword [esi + 0x18]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], edx
call eax
add esp, 0x18
mov ecx, dword [0x2f359c]
sub esp, 4
mov edx, esp
mov edi, dword [esi + 0x9c]
mov dword [edx], edi
mov dword [esi + 0x10], eax
call ecx
mov ecx, dword [0x2f35f8]
mov edx, ecx
add edx, 4
mov dword [esi + 0xc], eax
mov eax, edx
cdq
idiv ecx
sub eax, ecx
mov dword [esi + 8], eax
mov eax, ecx
xor edx, edx
mov edi, dword [esi + 8]
div edi
and ecx, eax
mov dword [esi + 4], eax
mov eax, ecx
xor edx, edx
mov ecx, dword [esi + 4]
div ecx
imul ecx, eax
mov eax, dword [esi + 4]
xor eax, ecx
mov ecx, eax
mov edx, dword [esi + 4]
shr edx, cl
add edx, eax
mov dword [0x2f35f8], edx
jmp 0x100055b7