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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 8]
cmp eax, dword [ecx + 8]
jbe 0x4177e1
sub esp, 0x88
mov eax, dword [esp + 0x8c]
mov ebp, dword [eax]
mov dword [esp + 0x44], ebp
mov ebp, dword [eax + 4]
mov dword [esp + 0x2c], ebp
mov dword [esp], ebp
call fcn.00459050
mov ebp, dword [esp + 4]
mov ebx, dword [esp + 0x44]
mov edi, dword [ebx + 0x28]
mov dword [esp + 0x18], edi
movzx edi, word [ebp + 4]
mov dword [esp + 0x28], ebp
mov ecx, dword [ebp + 8]
add ebp, ecx
mov dword [esp + 0x14], edi
cmp edi, 0x10000
ja 0x4177da
cmp ebp, 0
je 0x4177d2
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], edi
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x20], 0
xor ecx, ecx
mov ebp, dword [esp + 0x18]
cmp ecx, ebp
jge 0x417548
mov ebx, dword [esp + 0x44]
cmp ebx, 0
je 0x4177cb
mov dword [esp + 0x1c], ecx
mov ebp, ecx
mov esi, dword [ebx + 0x28]
cmp ecx, esi
jae 0x4177c4
mov esi, dword [ebx + 0x24]
shl ebp, 3
add esi, ebp
mov ebx, dword [esp + 0x44]
mov dword [esp], ebx
cmp dword [esp], 0
je 0x4177b9
mov dword [esp + 0x48], esi
mov ebp, dword [esi + 4]
mov dword [esp + 4], ebp
call fcn.00459520
mov ebx, dword [esp + 8]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x44]
mov dword [esp], ebx
cmp dword [esp], 0
je 0x4177ae
mov ebx, dword [esp + 0x48]
mov ebp, dword [ebx]
mov dword [esp + 4], ebp
call fcn.004594d0
mov eax, dword [esp + 8]
mov dword [esp + 0x38], eax
mov dword [esp], eax
call fcn.00459c60
mov ebx, dword [esp + 4]
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 8]
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0x38]
mov dword [esp], ebx
call fcn.00459e40
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 4]
mov dword [esp + 0x5c], ebx
mov ecx, dword [esp + 8]
mov dword [esp + 0x60], ecx
cmp ecx, 0
jne 0x41736c
mov eax, dword [esp + 0x44]
cmp eax, 0
je 0x4177a7
add eax, 0x20
cld
mov ecx, dword [eax]
mov dword [esp], ecx
call fcn.00459c60
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 4]
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 8]
mov dword [esp + 0x60], ebx
mov ebp, dword [esp + 0x14]
cmp esi, ebp
jge 0x417654
mov dword [esp + 0x20], esi
mov ebx, esi
mov ebp, dword [esp + 0x80]
cmp esi, ebp
jae 0x4177a0
mov ebp, dword [esp + 0x7c]
shl ebx, 4
add ebp, ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp], ebx
mov dword [esp + 0x34], ebp
mov ebp, dword [ebp]
mov dword [esp + 4], ebp
call fcn.004594d0
mov ebx, dword [esp + 8]
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x34]
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
call fcn.00459520
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0x40]
cmp ebx, ebp
jne 0x41779b
mov ebx, dword [esp + 0x30]
mov dword [esp], ebx
call fcn.00459c60
mov edi, dword [esp + 4]
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0x68]
cmp esi, ebx
jne 0x41779b
mov dword [esp + 0x74], edi
mov dword [esp], edi
mov dword [esp + 0x78], esi
mov dword [esp + 4], esi
mov ebp, dword [esp + 0x64]
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x68]
mov dword [esp + 0xc], ebp
call fcn.004633f0
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x41779b
mov ebx, dword [esp + 0x30]
mov dword [esp], ebx
call fcn.00459e40
mov edi, dword [esp + 4]
mov dword [esp + 0x54], edi
mov esi, dword [esp + 8]
mov dword [esp + 0x58], esi
cmp esi, 0
jne 0x417485
mov ebx, dword [esp + 0x2c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x28]
mov ebp, dword [ebx]
mov dword [esp + 4], ebp
call fcn.004594d0
mov eax, dword [esp + 8]
mov dword [esp + 0x50], eax
mov dword [esp], eax
call fcn.00459c60
mov edi, dword [esp + 4]
mov dword [esp + 0x54], edi
mov esi, dword [esp + 8]
mov dword [esp + 0x58], esi
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x3c], ecx
movzx ebp, byte [ecx]
mov ebx, ebp
and ebx, 1
cmp bl, 0
jne 0x417791
xor ecx, ecx
cmp cl, 0
jne 0x4174db
mov ebx, dword [esp + 0x60]
cmp esi, ebx
jne 0x417643
mov dword [esp], edi
mov dword [esp + 4], esi
mov ebp, dword [esp + 0x5c]
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x60]
mov dword [esp + 0xc], ebp
call fcn.004633f0
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x417643
mov ebx, dword [esp + 0x8c]
xor ebp, ebp
cmp ebx, ebp
je 0x417537
mov ebx, dword [esp + 0x2c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x34]
mov ebp, dword [ebx + 8]
mov dword [esp + 4], ebp
call fcn.00459890
mov ebp, dword [esp + 8]
mov ebx, dword [esp + 0x8c]
cmp ebx, 0
je 0x41763c
lea ebx, [ebx + 0x14]
mov ecx, dword [esp + 0x1c]
shl ecx, 2
add ebx, ecx
cmp ebx, 0
je 0x417635
cmp byte [0x8f7eb8], 0
jne 0x417624
mov dword [ebx], ebp
mov ecx, dword [esp + 0x1c]
inc ecx
mov ebp, dword [esp + 0x18]
cmp ecx, ebp
jl 0x417289
cmp byte [esp + 0x90], 0
jne 0x417567
mov ebx, 0x762637
mov dword [esp], ebx
mov dword [esp + 4], 0x14
call fcn.00437600
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x2c]
mov edi, dword [ecx + 8]
mov ecx, dword [esi + 8]
imul ecx, ecx, 0x11
add ecx, edi
mov eax, 0x3ce4585
mul ecx
mov eax, edx
xor edx, edx
xor ebx, ebx
add eax, ecx
adc edx, ebx
shrd eax, edx, 0xa
shr edx, 0xa
mov ebx, eax
imul ebx, ebx, 0x3f1
sub ecx, ebx
mov dword [esp + 0x24], ecx
mov ebx, ecx
mov ebp, 0x8e6be0
cmp ecx, 0x3f1
jae 0x41761d
shl ebx, 2
add ebp, ebx
mov eax, dword [ebp]
mov ebx, dword [esp + 0x8c]
cmp ebx, 0
je 0x417619
cmp byte [0x8f7eb8], 0
jne 0x417604
mov dword [ebx + 8], eax
mov ebx, ecx
mov ebp, 0x8e6be0
cmp ecx, 0x3f1
jae 0x4175fd
shl ebx, 2
add ebp, ebx
mov dword [esp], ebp
mov ebx, dword [esp + 0x8c]
mov dword [esp + 4], ebx
call fcn.0040e4f0
add esp, 0x88
ret
call fcn.00435970
ud2
lea esi, [ebx + 8]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.0041b160
mov ecx, dword [esp + 0x24]
jmp 0x4175cf
mov dword [ebx], eax
jmp 0x4175c3
call fcn.00435970
ud2
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.0041b160
jmp 0x417537
mov dword [ebx], eax
jmp 0x417528
mov dword [ebx], eax
jmp 0x417513
mov esi, dword [esp + 0x20]
inc esi
mov ebp, dword [esp + 0x14]
cmp esi, ebp
jl 0x417378
cmp byte [esp + 0x91], 0
jne 0x41777d
cmp byte [esp + 0x90], 0
je 0x417679
mov ebx, 0x8f7d7c
mov dword [esp], ebx
call fcn.00418b60
mov ebx, dword [esp + 0x2c]
mov dword [esp], ebx
call fcn.00458fb0
mov ebx, dword [esp + 4]
mov dword [esp + 0x74], ebx
mov ebx, dword [esp + 8]
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x44]
mov dword [esp], ebx
cmp dword [esp], 0
je 0x417772
call fcn.00458fb0
mov ebx, dword [esp + 4]
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 8]
mov dword [esp + 0x70], ebx
mov dword [esp], 0x7301c0
call fcn.0041a7b0
mov eax, dword [esp + 4]
xor ebp, ebp
mov dword [eax], ebp
mov dword [eax + 4], ebp
mov dword [esp + 0x4c], eax
mov ebp, dword [esp + 0x78]
mov dword [eax + 0xc], ebp
mov ebp, dword [esp + 0x74]
cmp byte [0x8f7eb8], 0
jne 0x41775a
mov dword [eax + 8], ebp
mov ebp, dword [esp + 0x70]
mov dword [eax + 0x14], ebp
mov ebp, dword [esp + 0x6c]
cmp byte [0x8f7eb8], 0
jne 0x417745
mov dword [eax + 0x10], ebp
mov ebp, dword [esp + 0x68]
mov dword [eax + 0x1c], ebp
mov ebp, dword [esp + 0x64]
cmp byte [0x8f7eb8], 0
jne 0x417730
mov dword [eax + 0x18], ebp
mov ecx, eax
mov eax, 0x71d740
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00436f30
ud2
lea esi, [eax + 0x18]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.0041b160
mov eax, dword [esp + 0x4c]
jmp 0x41771b
lea esi, [eax + 0x10]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.0041b160
mov eax, dword [esp + 0x4c]
jmp 0x417704
lea esi, [eax + 8]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.0041b160
mov eax, dword [esp + 0x4c]
jmp 0x4176ed
mov dword [0], eax
jmp 0x4176a6
mov ecx, 1
mov ebx, dword [esp + 0x8c]
mov dword [ebx + 0xc], ecx
jmp 0x417548
mov ecx, 1
jmp 0x4174a0
jmp 0x417643
call fcn.00435970
ud2
mov dword [eax], eax
jmp 0x41734a
mov dword [0], eax
jmp 0x4172e9
mov dword [0], eax
jmp 0x4172c0
call fcn.00435970
ud2
mov dword [ebx], eax
jmp 0x417296
mov dword [ebp], eax
jmp 0x417261
call fcn.004359e0
ud2
call fcn.004616d0
jmp fcn.004171f0