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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x8f4
mov eax, dword [0x10411ce0]
xor eax, esp
mov dword [esp + 0x8f0], eax
push ebx
push esi
push edi
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x20]
mov edx, dword [ebp + 0x28]
mov dword [esp + 0x94], eax
mov eax, dword [ebp + 0x2c]
mov dword [esp + 0x90], ecx
mov ecx, dword [ebp + 0x30]
mov dword [esp + 0x64], eax
mov eax, dword [eax + 0x44]
mov ebx, dword [ebp + 8]
mov dword [esp + 0x84], ecx
mov ecx, dword [ebp + 0x38]
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x80], eax
mov eax, dword [ebp + 0x14]
sub eax, dword [ebp + 0x10]
mov dword [esp + 0x9c], edx
mov edx, dword [ebp + 0x34]
mov dword [esp + 0x7c], ecx
mov ecx, dword [ebx + 0x10]
mov edi, dword [ebp + 0x24]
mov dword [esp + 0x98], edx
mov edx, dword [ebp + 0x3c]
mov dword [esp + 0x60], ecx
xor ecx, ecx
push 0x1a8
mov dword [esp + 0x7c], eax
mov dword [esp + 0x8c], edx
mov edx, dword [ebx + 0x14]
push ecx
lea eax, [esp + 0xa8]
push eax
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], esi
mov dword [esp + 0x98], edi
mov dword [esp + 0x2c], 0x100000
mov dword [esp + 0x80], edx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x68], ecx
call fcn.102dad40
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0x6c]
mov dword [esp + 0x17c], ecx
mov ecx, dword [esi + 0x10]
and ecx, 0x2000
mov edx, eax
mov dword [esp + 0x18c], ecx
mov ecx, dword [esi + 0x18]
shr edx, 2
and edx, 1
mov dword [esp + 0x184], edx
mov edx, ecx
imul edx, ecx
mov dword [esp + 0x204], ecx
not eax
add esp, 0xc
mov dword [esp + 0x228], edx
mov edx, dword [ebx + 0x78]
and eax, 1
mov dword [esp + 0x1fc], eax
mov eax, dword [edi + 4]
lea ecx, [esp + 0x740]
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0x134], 0
mov dword [esp + 0x20c], edx
mov dword [esp + 0x164], eax
mov ecx, 0x6a
lea esi, [esp + 0xa0]
lea edi, [esp + 0x248]
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x6a
lea esi, [esp + 0xa0]
lea edi, [esp + 0x598]
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x6a
lea esi, [esp + 0xa0]
lea edi, [esp + 0x3f0]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x64]
mov eax, dword [ecx + 0x20]
mov edi, dword [esp + 0x2c]
mov dword [edi + 0x20], eax
mov dword [esp + 0x4c4], eax
mov dword [esp + 0x31c], eax
mov eax, dword [ecx + 0x20]
xor esi, esi
mov dword [edi + 0x24], eax
mov dword [esp + 0x4f4], eax
mov dword [esp + 0x66c], eax
mov dword [esp + 0x24], esi
cmp dword [ebx + 0x14], esi
jbe 0x1012d5cd
xor eax, eax
mov dword [esp + 0x40], esi
mov dword [esp + 0x68], eax
nop
mov ecx, dword [esp + 0x74]
xor edx, edx
div ecx
xor edx, edx
imul eax, ecx
mov ecx, dword [ebp + 0x40]
lea eax, [eax + ecx - 1]
div ecx
mov edx, dword [0x1033d448]
mov dword [esp + 0x6c], edx
mov edx, dword [0x1033d44c]
mov dword [esp + 0x70], edx
mov edx, dword [0x1033d448]
mov dword [esp + 0x54], edx
mov edx, dword [0x1033d44c]
mov dword [esp + 0x58], edx
xor edx, edx
mov dword [esp + 0x30], edx
imul eax, dword [esp + 0x60]
mov dword [esp + 0x44], eax
cmp dword [ebx + 0x10], edx
jbe 0x1012d5ad
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x38], ecx
jmp 0x1012d0fc
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x28]
mov ecx, dword [ebx + 0x10]
mov ebx, dword [edi + 0x44]
imul ecx, esi
mov edi, dword [esp + 0x80]
add ecx, edx
imul ecx, ecx, 0x1e8
add ebx, ecx
add ecx, edi
mov dword [esp + 0x34], ecx
cmp dword [esp + 0x38], eax
jne 0x1012d12e
mov dword [esp + 0x3c], 1
test esi, esi
ja 0x1012d136
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0x2c]
push ecx
add eax, 0x38
push eax
mov eax, dword [esp + 0x90]
mov dword [ebx + 0xec], 0xffffffff
mov ecx, dword [eax]
mov eax, dword [esp + 0x84]
push ecx
mov ecx, dword [eax]
mov eax, dword [esp + 0xa4]
push ecx
mov ecx, dword [eax]
mov eax, dword [esp + 0x94]
push ecx
mov ecx, dword [esp + 0xb0]
push eax
mov eax, dword [ecx]
mov ecx, dword [esp + 0xa4]
push eax
mov eax, dword [ecx]
mov ecx, dword [esp + 0xac]
push eax
mov eax, dword [ecx]
mov ecx, dword [esp + 0xb4]
push eax
push ecx
push esi
push edx
lea edx, [esp + 0x5c8]
push edx
lea edi, [esp + 0x424]
lea esi, [esp + 0x27c]
lea edx, [esp + 0xd4]
call fcn.1012b790
mov eax, dword [esp + 0x98]
add esp, 0x34
cmp dword [eax + 0x14], 3
je 0x1012d20f
mov ecx, dword [esp + 0x34]
mov eax, 0x10
cmp dword [ecx + 0xec], eax
jne 0x1012d20f
mov ecx, dword [0x1033d448]
mov esi, dword [esp + 0x30]
mov dword [ebx + 0xec], eax
mov eax, dword [0x1033d44c]
mov dword [ebx + 0x194], ecx
mov dword [ebx + 0x198], eax
mov dword [ebx], ecx
mov dword [ebx + 4], eax
mov dword [ebx + 0x154], 0
jmp 0x1012d58a
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
lea edx, [esp + 0xa0]
push edx
mov edx, dword [ebp + 0x14]
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x80]
push ecx
mov ecx, dword [esp + 0x30]
push ebx
push edi
push edx
push eax
mov edx, esi
call fcn.1012c1f0
add esp, 0x1c
cmp dword [ebx + 0xec], 4
mov dword [esp + 0x4c], eax
jne 0x1012d26b
mov ecx, dword [esp + 0x20]
mov dword [ebx + 0x154], ecx
mov dword [ebx + 0x178], 0
jmp 0x1012d58a
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xcc]
push edx
push eax
push ecx
push 3
lea edx, [esp + 0x30]
push edx
mov edx, dword [esp + 0x38]
push ebx
push edi
mov edi, dword [esp + 0x48]
mov eax, dword [edi + 0x20]
mov ecx, dword [edi + 0x10]
push eax
push ecx
push edx
push esi
lea ecx, [esp + 0x274]
lea eax, [esp + 0x80]
call fcn.1012bb50
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x104]
mov edx, dword [esp + 0x100]
push eax
push ecx
mov ecx, dword [esp + 0x5c]
push edx
mov edx, dword [edi + 0x24]
push 2
lea eax, [esp + 0x5c]
push eax
mov eax, dword [edi + 0x10]
push ebx
push ecx
mov ecx, dword [esp + 0x6c]
push edx
push eax
push ecx
push esi
lea ecx, [esp + 0x5f0]
lea eax, [esp + 0xc4]
call fcn.1012bb50
mov eax, dword [edi + 0x10]
mov edx, dword [esp + 0x78]
add esp, 0x58
test eax, 0x10000000
je 0x1012d308
mov dword [esp + 0x48], edx
jmp 0x1012d312
mov ecx, edx
sar ecx, 1
add ecx, edx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x48]
cmp dword [esp + 0x258], ecx
jg 0x1012d341
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
lea edx, [esp + 0x20]
push edx
push ecx
push esi
lea ecx, [esp + 0x254]
call fcn.1012bce0
mov edi, dword [esp + 0x38]
add esp, 0xc
mov edx, dword [esp + 0x48]
cmp dword [esp + 0x5a8], edx
jg 0x1012d377
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
lea eax, [esp + 0x20]
push eax
mov eax, dword [edx + 0x10]
push ecx
push esi
lea ecx, [esp + 0x5a4]
call fcn.1012bce0
mov edi, dword [esp + 0x38]
add esp, 0xc
mov eax, dword [esp + 0x5c0]
mov ecx, dword [esp + 0x5bc]
mov edx, dword [esp + 0x270]
push eax
mov eax, dword [esp + 0x270]
push ecx
push edx
push eax
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x400]
push ecx
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x34]
push edx
push eax
push ecx
push esi
lea eax, [esp + 0x90]
lea ecx, [esp + 0x78]
call fcn.1012c570
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x424]
mov edx, eax
sar edx, 3
add edx, eax
add esp, 0x24
cmp ecx, edx
jge 0x1012d3e1
test dword [edi + 0x10], 0x8000000
je 0x1012d3e5
cmp ecx, eax
jg 0x1012d40a
mov ecx, dword [esp + 0x28]
mov edx, dword [edi + 0x10]
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x28]
push ecx
push edx
push eax
push esi
lea eax, [esp + 0x404]
call fcn.1012c6d0
add esp, 0x14
jmp 0x1012d42a
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push esi
lea esi, [esp + 0x3f4]
call fcn.1012c8f0
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
add esp, 4
mov eax, dword [esp + 0x20]
lea ecx, [eax + eax]
cmp dword [esp + 0xb0], ecx
jg 0x1012d470
mov ecx, dword [edi + 0x10]
test ecx, 0x4000000
jne 0x1012d44c
cmp eax, 0x2ee
jg 0x1012d453
cmp eax, 0x3e8
jle 0x1012d470
lea edx, [esp + 0x20]
push edx
push ecx
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0xa8]
call fcn.1012c4d0
mov eax, dword [esp + 0x28]
add esp, 8
mov ecx, dword [esp + 0x1f8]
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x4c]
add edx, edx
add edx, edx
add edx, edx
cmp ecx, edx
jae 0x1012d4d8
imul eax, eax, 0x64
inc ecx
xor edx, edx
div ecx
cmp eax, 0x32
jbe 0x1012d4d4
xor edi, edi
push ebx
lea esi, [esp + 0xa4]
mov dword [esp + 0x134], edi
call fcn.1012be00
mov esi, dword [esp + 0x34]
add esp, 4
cmp dword [ebx + 0xec], 4
jne 0x1012d4d0
mov eax, dword [esp + 0x4c]
mov dword [ebx + 0x154], eax
mov dword [ebx + 0x178], edi
jmp 0x1012d58a
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x3c]
push edx
test ecx, 0x2000
je 0x1012d536
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x2c]
push eax
mov eax, dword [edi + 0x10]
push esi
push edx
push ecx
push eax
mov eax, dword [esp + 0x50]
lea ecx, [esp + 0x88]
push ecx
lea edx, [esp + 0x74]
push edx
push eax
push ebx
lea ecx, [esp + 0x41c]
push ecx
lea edx, [esp + 0x278]
push edx
lea eax, [esp + 0x5cc]
push eax
lea ecx, [esp + 0xd8]
push ecx
call fcn.10131cd0
add esp, 0x3c
jmp 0x1012d56e
mov edx, dword [esp + 0x38]
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x5c]
push ecx
push edx
lea eax, [esp + 0x258]
push eax
lea ecx, [esp + 0x5ac]
push ecx
lea edx, [esp + 0xb8]
push edx
mov ecx, ebx
lea eax, [esp + 0x40c]
call fcn.1012c950
add esp, 0x1c
mov eax, dword [esp + 0x178]
push eax
lea ecx, [esp + 0x60]
push ecx
lea edx, [esp + 0x58]
push edx
mov eax, ebx
call fcn.1012ce00
add esp, 0xc
mov eax, dword [esp + 0x28]
inc dword [esp + 0x38]
mov edi, dword [esp + 0x2c]
inc esi
cmp esi, dword [eax + 0x10]
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x24]
jb 0x1012d0f0
mov ecx, dword [ebp + 0x40]
mov ebx, eax
mov eax, dword [esp + 0x68]
add eax, ecx
mov ecx, dword [esp + 0x60]
add dword [esp + 0x40], ecx
inc esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x68], eax
cmp esi, dword [ebx + 0x14]
jb 0x1012d090
mov edx, dword [esp + 0x50]
push edx
call fcn.101219f0
mov dword [edi + 0x20], eax
mov eax, dword [esp + 0x60]
push eax
call fcn.101219f0
mov ecx, dword [esp + 0x904]
add esp, 8
mov dword [edi + 0x24], eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.102d6d23
mov esp, ebp
pop ebp
ret