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

Disassembly:
sub esp, 0x8c
push ebx
push ebp
mov ebp, dword [esp + 0xcc]
inc ebp
and ebp, 0xfffffffe
push esi
mov esi, dword [esp + 0xd4]
mov eax, ebp
sar eax, 1
mov dword [esp + 0x44], eax
or eax, 0xffffffff
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
push edi
lea eax, [ebp + ebp*2]
add eax, eax
push 0
mov dword [esp + 0x74], eax
cdq
push 2
inc esi
and esi, 0xfffffffe
push edx
mov ebx, esi
push eax
mov dword [esp + 0x54], ebp
mov dword [esp + 0x68], esi
sar ebx, 1
call fcn.10003750
xor ecx, ecx
cmp eax, eax
jne 0x10001a95
cmp edx, ecx
je 0x10001a9d
xor edi, edi
mov dword [esp + 0x24], edi
jmp 0x10001aac
push eax
call fcn.100037d3
add esp, 4
mov dword [esp + 0x24], eax
mov edi, eax
mov eax, esi
imul eax, ebp
push 0
cdq
push 2
push edx
push eax
call fcn.10003750
mov ecx, edx
xor edx, edx
mov esi, eax
mov dword [esp + 0x80], ecx
cmp eax, eax
jne 0x10001ad2
cmp ecx, edx
je 0x10001adc
mov dword [esp + 0x30], 0
jmp 0x10001ae9
push eax
call fcn.100037d3
add esp, 4
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x80]
xor ecx, ecx
cmp esi, esi
jne 0x10001afa
cmp eax, ecx
je 0x10001b00
mov dword [esp + 0x50], ecx
jmp 0x10001b0d
push esi
call fcn.100037d3
add esp, 4
mov dword [esp + 0x50], eax
push 0
lea eax, [ebp + ebp]
cdq
push 2
push edx
push eax
call fcn.10003750
xor ecx, ecx
cmp eax, eax
jne 0x10001b27
cmp edx, ecx
je 0x10001b31
mov dword [esp + 0x38], 0
jmp 0x10001b3e
push eax
call fcn.100037d3
add esp, 4
mov dword [esp + 0x38], eax
imul ebx, dword [esp + 0x48]
push 0
lea eax, [ebx + ebx*2]
cdq
push 2
push edx
push eax
call fcn.10003750
xor ecx, ecx
mov ebx, eax
mov dword [esp + 0x80], edx
cmp eax, eax
jne 0x10001b65
cmp edx, ecx
je 0x10001b6d
xor esi, esi
mov dword [esp + 0x5c], esi
jmp 0x10001b83
push eax
call fcn.100037d3
mov edx, dword [esp + 0x84]
add esp, 4
mov dword [esp + 0x5c], eax
mov esi, eax
xor eax, eax
cmp ebx, ebx
jne 0x10001b96
cmp edx, eax
jne 0x10001b96
push ebx
call fcn.100037d3
add esp, 4
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x48]
lea eax, [eax + eax*2]
push 0
mov dword [esp + 0x88], eax
cdq
push 2
push edx
push eax
call fcn.10003750
xor ecx, ecx
cmp eax, eax
jne 0x10001bbe
cmp edx, ecx
je 0x10001bc4
mov dword [esp + 0x64], ecx
jmp 0x10001bd1
push eax
call fcn.100037d3
add esp, 4
mov dword [esp + 0x64], eax
fild dword [esp + 0x44]
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x18], ebx
fmul qword [0x10011140]
mov dword [esp + 0x1c], eax
fimul dword [esp + 0x58]
call fcn.10003d56
cmp dword [esp + 0x30], 0
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], edx
je 0x10002391
test esi, esi
je 0x10002391
test ebx, ebx
je 0x10002391
cmp dword [esp + 0x4c], 0
je 0x10002391
cmp dword [esp + 0x38], 0
je 0x10002391
cmp dword [esp + 0x64], 0
je 0x10002391
test edi, edi
je 0x10002391
cmp dword [esp + 0xd8], 0
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0x2c], 0
jle 0x10001f97
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x70]
sub esi, dword [esp + 0x4c]
lea eax, [eax + eax*2]
add eax, eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x30]
add ecx, edi
sub eax, dword [esp + 0x50]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], eax
jmp 0x10001c90
mov edx, dword [esp + 0xd4]
mov eax, dword [esp + 0xa8]
mov esi, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
push edi
push edx
push ebx
push eax
mov eax, dword [esp + 0xbc]
push esi
call fcn.10001360
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0x34]
dec eax
add esp, 0x14
cmp dword [esp + 0x2c], eax
je 0x10001d0b
mov edx, dword [esp + 0xd4]
mov eax, dword [esp + 0xb0]
push ecx
mov ecx, dword [esp + 0xac]
push edx
mov edx, dword [esp + 0xac]
add ecx, eax
push ebx
push ecx
add esi, eax
lea ecx, [edx + eax]
mov eax, dword [esp + 0xbc]
push esi
call fcn.10001360
add esp, 0x14
jmp 0x10001d1a
mov eax, dword [esp + 0x70]
push eax
push edi
push ecx
call fcn.100039b0
add esp, 0xc
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x78]
lea esi, [eax + edx]
mov eax, ebp
mov edx, esi
mov ecx, edi
call fcn.100012b0
mov ecx, dword [esp + 0x20]
lea edx, [esi + ebp*2]
mov eax, ebp
call fcn.100012b0
lea eax, [ebx + 2]
cmp eax, 0xe
jg 0x10001d4d
mov esi, 2
jmp 0x10001d54
mov esi, 0xe
sub esi, ebx
add esi, ebx
test ebp, ebp
jle 0x10001e2a
mov eax, dword [esp + 0x18]
lea ecx, [edi + ebp*4]
lea edx, [edi + ebp*2]
sub edi, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x40], edi
mov dword [esp + 0x54], ebp
jmp 0x10001d84
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x14]
movzx ecx, word [edi + eax]
push esi
push ecx
call fcn.10002f10
mov edx, dword [esp + 0x30]
mov dword [esp + 0x3c], eax
movzx eax, word [edx]
push esi
push eax
call fcn.10002f10
mov ecx, dword [esp + 0x20]
movzx edx, word [ecx]
push esi
push edx
mov dword [esp + 0x54], eax
call fcn.10002f10
mov ecx, 0x127c
mul ecx
mov ecx, eax
mov eax, dword [esp + 0x54]
mov edi, edx
mov edx, 0xb717
mul edx
add esp, 0x18
add ecx, eax
mov eax, dword [esp + 0x34]
adc edi, edx
mov edx, 0x366d
mul edx
add ecx, eax
adc edi, edx
add ecx, 0x8000
adc edi, 0
mov eax, ecx
push esi
mov edx, edi
mov cl, 0x10
call fcn.10003720
push eax
call fcn.10002f90
mov ecx, dword [esp + 0x1c]
mov word [ecx], ax
mov eax, 2
add dword [esp + 0x30], eax
add dword [esp + 0x18], eax
add ecx, eax
add esp, 8
sub dword [esp + 0x54], 1
mov dword [esp + 0x14], ecx
jne 0x10001d80
mov edi, dword [esp + 0x24]
lea eax, [ebx + 2]
cmp eax, 0xe
jg 0x10001e39
mov esi, 2
jmp 0x10001e40
mov esi, 0xe
sub esi, ebx
add esi, ebx
mov dword [esp + 0x14], 0
test ebp, ebp
jle 0x10001f19
mov eax, dword [esp + 0x18]
lea ebx, [eax + ebp*2]
mov eax, dword [esp + 0x20]
mov edi, eax
sub edi, dword [esp + 0x18]
lea ecx, [eax + ebp*4]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x34], edi
jmp 0x10001e78
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
movzx eax, word [eax + edx*2]
push esi
push eax
call fcn.10002f10
movzx ecx, word [edi + ebx]
push esi
push ecx
mov dword [esp + 0x50], eax
call fcn.10002f10
mov edx, dword [esp + 0x20]
mov dword [esp + 0x4c], eax
movzx eax, word [edx]
push esi
push eax
call fcn.10002f10
mov ecx, 0x127c
mul ecx
mov ecx, eax
mov eax, dword [esp + 0x54]
mov edi, edx
mov edx, 0xb717
mul edx
add esp, 0x18
add ecx, eax
mov eax, dword [esp + 0x40]
adc edi, edx
mov edx, 0x366d
mul edx
add ecx, eax
adc edi, edx
add ecx, 0x8000
adc edi, 0
mov eax, ecx
push esi
mov edx, edi
mov cl, 0x10
call fcn.10003720
push eax
call fcn.10002f90
add dword [esp + 0x18], 2
mov word [ebx], ax
mov eax, dword [esp + 0x1c]
inc eax
add esp, 8
add ebx, 2
cmp eax, ebp
mov dword [esp + 0x14], eax
jl 0x10001e70
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0xb4]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x48]
push ebx
push eax
push ecx
push edi
call fcn.10001030
mov edx, dword [esp + 0x70]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x84]
push edx
add eax, esi
push esi
push eax
call fcn.100039b0
add esi, dword [esp + 0x7c]
lea eax, [ebp*4]
add dword [esp + 0x34], eax
mov eax, dword [esp + 0xcc]
add eax, eax
add dword [esp + 0xbc], eax
add dword [esp + 0xc0], eax
add dword [esp + 0xc4], eax
mov eax, dword [esp + 0x48]
add eax, 2
add esp, 0x1c
cmp eax, dword [esp + 0xd8]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x2c], eax
jl 0x10001c90
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x28], 0
nop
mov ecx, dword [esp + 0x30]
xor eax, eax
cmp dword [esp + 0x58], eax
mov edx, esi
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], esi
mov dword [esp + 0x2c], eax
jle 0x100022d6
mov eax, dword [esp + 0x70]
add eax, edi
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.10001010
add eax, ebx
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x48]
lea eax, [eax + eax*2]
add eax, eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x4c]
sub eax, esi
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x30]
mov dword [esp + 0x90], eax
jmp 0x10002018
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x58]
xor ecx, ecx
add eax, 0xfffffffe
cmp dword [esp + 0x2c], eax
setge cl
dec ecx
and ecx, dword [esp + 0x84]
mov eax, ecx
mov ecx, dword [esp + 0x18]
push ecx
push edi
lea eax, [esi + eax*2]
push ebp
push eax
push edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], eax
push edx
mov ecx, ebx
mov eax, esi
call fcn.100014b0
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x4c], eax
lea eax, [ebx + 2]
add esp, 0x18
cmp eax, 0xe
mov dword [esp + 0x74], esi
jg 0x1000206e
mov eax, 2
jmp 0x10002075
mov eax, 0xe
sub eax, ebx
add ebx, eax
test ebp, ebp
jle 0x10002136
mov esi, dword [esp + 0x38]
lea ecx, [edi + ebp*4]
lea edx, [edi + ebp*2]
sub edi, esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x54], ebp
jmp 0x100020a4
mov edi, dword [esp + 0x3c]
movzx eax, word [edi + esi]
push ebx
push eax
call fcn.10002f10
mov ecx, dword [esp + 0x24]
movzx edx, word [ecx]
push ebx
push edx
mov ebp, eax
call fcn.10002f10
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x24]
movzx ecx, word [eax]
push ebx
push ecx
call fcn.10002f10
mov edx, 0x127c
mul edx
mov ecx, eax
mov eax, dword [esp + 0x58]
mov edi, edx
mov edx, 0xb717
mul edx
add esp, 0x18
add ecx, eax
adc edi, edx
mov eax, ebp
mov edx, 0x366d
mul edx
add ecx, eax
adc edi, edx
add ecx, 0x8000
adc edi, 0
mov eax, ecx
push ebx
mov edx, edi
mov cl, 0x10
call fcn.10003720
push eax
call fcn.10002f90
mov word [esi], ax
mov eax, 2
add dword [esp + 0x24], eax
add dword [esp + 0x1c], eax
add esp, 8
add esi, eax
sub dword [esp + 0x54], 1
jne 0x100020a0
mov eax, dword [esp + 0xb4]
lea ecx, [eax + 2]
cmp ecx, 0xe
jg 0x1000214c
mov ebx, 2
jmp 0x10002153
mov ebx, 0xe
sub ebx, eax
mov edi, dword [esp + 0x44]
add ebx, eax
xor ebp, ebp
test edi, edi
jle 0x1000221d
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x18]
lea esi, [ecx + edi*2]
add edi, edi
add edi, edi
add edi, eax
mov dword [esp + 0x1c], edi
mov edi, eax
sub edi, ecx
mov dword [esp + 0x3c], edi
jmp 0x1000218a
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x3c]
movzx eax, word [eax + ebp*2]
push ebx
push eax
call fcn.10002f10
movzx ecx, word [edi + esi]
push ebx
push ecx
mov dword [esp + 0x88], eax
call fcn.10002f10
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x50], eax
movzx eax, word [edx]
push ebx
push eax
call fcn.10002f10
mov ecx, 0x127c
mul ecx
mov ecx, eax
mov eax, dword [esp + 0x58]
mov edi, edx
mov edx, 0xb717
mul edx
add esp, 0x18
add ecx, eax
mov eax, dword [esp + 0x78]
adc edi, edx
mov edx, 0x366d
mul edx
add ecx, eax
adc edi, edx
add ecx, 0x8000
adc edi, 0
mov eax, ecx
push ebx
mov edx, edi
mov cl, 0x10
call fcn.10003720
push eax
call fcn.10002f90
add dword [esp + 0x24], 2
mov word [esi], ax
inc ebp
add esp, 8
add esi, 2
cmp ebp, dword [esp + 0x44]
jl 0x10002182
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0xb4]
mov ebp, dword [esp + 0x64]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x48]
push eax
push ebp
push ecx
push edx
call fcn.10001030
mov eax, dword [esp + 0xa8]
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0xa0]
push eax
lea eax, [edi + edi]
push eax
push ebx
push ecx
add edx, ebx
push edx
call dword [0x1001a51c]
add dword [esp + 0x8c], eax
mov eax, dword [esp + 0xa8]
mov esi, dword [esp + 0x44]
adc dword [esp + 0x90], edx
mov ecx, dword [esp + 0xb8]
push eax
push esi
add ecx, esi
push ebp
push ecx
call dword [0x1001a520]
add esi, dword [esp + 0x94]
mov ebp, dword [esp + 0x78]
lea eax, [edi*4]
mov edi, dword [esp + 0x58]
add ebx, eax
mov eax, dword [esp + 0x60]
add eax, 2
add esp, 0x34
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0x20], esi
mov dword [esp + 0x2c], eax
jl 0x10002010
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x5c]
cmp dword [esp + 0x28], 0
mov ecx, dword [esp + 0x6c]
jle 0x10002306
cmp ecx, dword [esp + 0x80]
jb 0x10002326
ja 0x100022f2
cmp eax, dword [esp + 0x7c]
jb 0x10002326
cmp ecx, dword [esp + 0x8c]
ja 0x10002326
jb 0x10002306
cmp eax, dword [esp + 0x88]
ja 0x10002326
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x28]
inc eax
cmp eax, 4
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x28], eax
jl 0x10001fa0
mov edx, dword [esp + 0xdc]
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xd4]
push edx
mov edx, dword [esp + 0xd4]
push eax
mov eax, dword [esp + 0xd4]
push ecx
mov ecx, dword [esp + 0xd4]
push edx
mov edx, dword [esp + 0xd4]
push eax
mov eax, dword [esp + 0xd4]
push ecx
mov ecx, dword [esp + 0xd4]
push edx
mov edx, dword [esp + 0xd4]
push eax
mov eax, dword [esp + 0x50]
push ecx
push edx
push esi
push eax
mov eax, ebx
call fcn.10001690
mov ebx, dword [esp + 0x80]
add esp, 0x30
mov ebp, eax
jmp 0x10002393
xor ebp, ebp
mov ecx, dword [esp + 0x30]
push ecx
call fcn.1000389d
push esi
call fcn.1000389d
push ebx
call fcn.1000389d
mov edx, dword [esp + 0x58]
push edx
call fcn.1000389d
mov eax, dword [esp + 0x48]
push eax
call fcn.1000389d
mov ecx, dword [esp + 0x78]
push ecx
call fcn.1000389d
push edi
call fcn.1000389d
add esp, 0x1c
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x8c
ret