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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xb8
mov eax, dword [esp + 0xcc]
mov esi, dword [ecx + 0xc]
mov dword [esp + 0x54], ecx
lea ecx, [esp + 0x5c]
mov edi, edx
mov dword [esp + 0xac], edx
mov dword [ecx], 4
and dword [ecx + 4], 0
and dword [ecx + 8], 0
imul eax, eax, 0x16c
add esi, 0x2a
lea ebx, [edx + eax]
mov dword [esp + 0x48], eax
push 2
pop eax
mov dword [esp + 0x44], eax
mov dword [esp + 4], 0
push 4
pop eax
mov ecx, esi
mov esi, eax
cmp edi, ebx
je 0x433d19
mov ebp, edi
add edi, 0x16c
mov eax, dword [ebp + 0x144]
or eax, dword [ebp + 0x148]
bt eax, 0x17
jb 0x433a2a
mov dword [esp + 0x68], 1
and dword [esp + 0x6c], 0
and dword [esp + 0x70], 0
mov dword [esp + 0xc], esi
mov esi, ecx
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp + 0x24]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], edx
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 6]
movsd qword [esp + 0x9a], xmm1
movsd qword [esp + 0x94], xmm0
call fcn.00419028
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x94]
lea ecx, [esp + 0x4c]
mov dword [esp + 0x50], edx
mov dword [esp + 0x7c], 0x637558
mov dword [esp + 0x2c], eax
lea eax, [esp + 0xb0]
mov dword [esp + 0x30], 0x4159a6
mov dword [esp + 0x34], eax
mov eax, fcn.00417b33
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], eax
push 3
pop eax
mov dword [esp + 0x80], eax
and dword [esp + 0x8c], 0
lea ecx, [esp + 0x2c]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], eax
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x6c]
push eax
call fcn.00419087
pop ecx
pop edx
mov eax, dword [ebp + 0x1c]
cmp eax, 0x110000
je 0x433bc2
mov dword [esp + 0xa4], eax
mov ecx, esi
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 6]
movsd qword [esp + 0x9a], xmm1
movsd qword [esp + 0x94], xmm0
call fcn.00419028
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x94]
mov dword [esp + 0x50], edx
mov dword [esp + 0x7c], 0x58eb1c
mov dword [esp + 0x2c], eax
lea eax, [esp + 0xa4]
mov dword [esp + 0x30], 0x4159a6
mov dword [esp + 0x34], eax
lea eax, [esp + 0x4c]
mov dword [esp + 0x38], fcn.00440560
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], fcn.00417b33
push 3
pop eax
mov dword [esp + 0x80], eax
and dword [esp + 0x8c], 0
lea ecx, [esp + 0x2c]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], eax
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x6c]
push eax
call fcn.00419087
pop ecx
pop edx
mov eax, dword [ebp + 0x94]
test eax, eax
je 0x433c7e
mov ecx, dword [ebp + 0x98]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], ecx
mov ecx, esi
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 6]
movsd qword [esp + 0x9a], xmm1
movsd qword [esp + 0x94], xmm0
call fcn.00419028
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x94]
lea ecx, [esp + 0x4c]
mov dword [esp + 0x50], edx
mov dword [esp + 0x7c], 0x58eb34
mov dword [esp + 0x2c], eax
lea eax, [esp + 0xa4]
mov dword [esp + 0x30], 0x4159a6
mov dword [esp + 0x34], eax
mov eax, fcn.00417b33
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], eax
push 3
pop eax
mov dword [esp + 0x80], eax
and dword [esp + 0x8c], 0
lea ecx, [esp + 0x2c]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], eax
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x6c]
push eax
call fcn.00419087
pop ecx
pop edx
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x70]
mov dword [esp + 8], esi
call fcn.004361ea
mov ecx, dword [esp + 0x44]
cmp ecx, eax
cmovbe ecx, eax
cmp dword [ebp], 0
mov eax, 0x3e7
mov dword [esp + 0x44], ecx
je 0x433caa
mov eax, dword [ebp + 4]
mov edx, dword [esp + 4]
mov dword [esp], eax
mov eax, dword [esp + 0x70]
movsd xmm0, qword [esp + 0x68]
cmp edx, dword [esp + 0x60]
mov dword [esp + 0x34], eax
movsd qword [esp + 0x2c], xmm0
jne 0x433cde
lea ecx, [esp + 0x5c]
call fcn.0042606f
mov esi, dword [esp + 0x5c]
mov edx, dword [esp + 0x64]
jmp 0x433ce2
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x34]
imul eax, edx, 0x14
mov dword [esi + eax + 8], ecx
mov ecx, dword [esp]
movsd xmm0, qword [esp + 0x2c]
movsd qword [esi + eax], xmm0
mov dword [esi + eax + 0xc], ecx
mov dword [esi + eax + 0x10], ebp
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x64]
inc eax
mov dword [esp + 4], eax
mov dword [esp + 0x64], eax
jmp 0x433a2a
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x5c]
cmp edi, 0x15
mov dword [esp + 0x14], eax
jae 0x433d46
cmp edi, 1
jbe 0x43418e
mov ecx, dword [esp + 0x14]
mov edx, edi
push 1
call fcn.00425934
pop eax
jmp 0x43418e
mov eax, edi
shr eax, 1
imul ecx, eax, 0x14
mov al, byte [0x64fd9c]
push 4
pop edx
call fcn.00404090
test eax, eax
mov dword [esp + 8], eax
je 0x4344be
push 0x10
pop esi
mov ecx, esi
call fcn.00425923
test eax, eax
je 0x4344cd
mov ebx, eax
mov eax, dword [esp + 0x14]
xor ebp, ebp
xor ecx, ecx
mov dword [esp + 4], edi
add eax, 0x14
mov dword [esp + 0x74], eax
mov edx, edi
sub edx, ecx
jbe 0x434177
cmp edx, 2
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], esi
jae 0x433dab
mov eax, edi
jmp 0x433efc
mov eax, dword [esp + 0x14]
imul esi, ecx, 0x14
mov dword [esp], edx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x20], ebx
lea edx, [eax + esi]
lea ecx, [edx + 0x14]
call fcn.00425a50
mov ebx, eax
test al, al
je 0x433df1
add esi, dword [esp + 0x74]
push 2
pop ebp
mov edx, dword [esp]
cmp edx, ebp
je 0x433e16
lea edi, [esi + 0x14]
mov edx, esi
mov ecx, edi
call fcn.00425a50
test al, al
je 0x433e14
inc ebp
mov esi, edi
jmp 0x433dd5
add esi, dword [esp + 0x74]
push 2
pop ebp
mov edx, dword [esp]
cmp edx, ebp
je 0x433e16
lea edi, [esi + 0x14]
mov edx, esi
mov ecx, edi
call fcn.00425a50
test al, al
jne 0x433e14
inc ebp
mov esi, edi
jmp 0x433df8
mov edx, ebp
mov ecx, dword [esp + 0x10]
test bl, bl
lea eax, [edx + ecx]
je 0x433ecf
mov dword [esp], edx
mov edx, eax
mov dword [esp + 0x1c], eax
push 0x5be720
push dword [esp + 8]
push dword [esp + 0x1c]
call fcn.0042576a
add esp, 0xc
mov edi, edx
imul ecx, edx, 0x14
xor esi, esi
shr edi, 1
add ecx, eax
mov edx, edi
neg edx
imul ebx, edx, 0x14
mov edx, edi
add ebx, ecx
xor ecx, ecx
push 0x5be690
push edi
push eax
call fcn.0042576a
add esp, 0xc
mov dword [esp + 0xc], edx
mov ebp, eax
mov edx, edi
xor ecx, ecx
push 0x5be6a0
push edi
push ebx
call fcn.0042576a
add esp, 0xc
imul ebx, edi, 0x14
mov dword [esp + 0x24], edx
mov edx, edi
add ebx, eax
cmp esi, edx
je 0x433ee1
cmp esi, dword [esp + 0xc]
je 0x434446
mov ecx, esi
mov eax, edx
not ecx
add ecx, edx
cmp ecx, dword [esp + 0x24]
jae 0x434453
push 0xfffffffffffffffb
pop eax
test eax, eax
je 0x433ec6
mov ecx, dword [ebp + eax*4 + 0x14]
mov edi, dword [ebx + eax*4]
mov dword [ebp + eax*4 + 0x14], edi
mov dword [ebx + eax*4], ecx
inc eax
jmp 0x433eb1
inc esi
add ebx, 0xffffffec
add ebp, 0x14
jmp 0x433e8e
mov edi, dword [esp + 4]
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x18]
jmp 0x433efc
mov edi, dword [esp + 4]
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov edx, dword [esp]
cmp eax, ecx
jb 0x43449b
cmp eax, edi
ja 0x43449b
jae 0x433f53
cmp edx, 9
ja 0x433f53
lea esi, [ecx + 0xa]
mov ecx, dword [esp + 0x10]
cmp esi, edi
cmovae esi, edi
cmp edx, 1
adc edx, 0
mov dword [esp], edx
mov edx, esi
push 0x5be7ec
push edi
push dword [esp + 0x1c]
call fcn.0042576a
add esp, 0xc
mov ecx, eax
push dword [esp]
call fcn.00425934
mov eax, esi
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
add esp, 4
cmp ebp, esi
mov dword [esp + 0x1c], eax
jne 0x433f97
lea ecx, [esi + esi]
mov dword [esp + 0x78], ecx
call fcn.00425923
test eax, eax
je 0x4344aa
mov ecx, esi
mov esi, eax
shl ecx, 3
push ecx
push ebx
push eax
call fcn.00570e70
add esp, 0xc
mov ecx, ebx
push 4
pop edx
call fcn.004040f0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov ebx, esi
jmp 0x433f9b
mov dword [esp + 0x78], esi
sub eax, ecx
mov dword [esp + 0x20], ebx
mov dword [ebx + ebp*8], eax
mov dword [ebx + ebp*8 + 4], ecx
inc ebp
mov edx, ebp
mov ecx, ebx
push edi
call fcn.00404cc5
pop ecx
cmp eax, 1
jne 0x43416a
mov esi, edx
mov edx, ebp
mov ecx, ebx
push 0x5be730
push esi
call fcn.00424742
pop ecx
pop edx
mov ecx, dword [eax]
mov edi, dword [eax + 4]
mov edx, ebp
mov dword [esp + 0x10], esi
inc esi
mov dword [esp + 0x28], ebp
mov dword [esp + 0xc], ecx
mov ecx, ebx
push 0x5be740
mov dword [esp + 0x28], esi
push esi
call fcn.00424742
pop ecx
pop edx
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x18], edi
add edx, ecx
mov dword [esp + 0x58], ecx
mov ecx, edi
push 0x5be750
push dword [esp + 8]
push dword [esp + 0x1c]
call fcn.0042576a
add esp, 0xc
mov ecx, dword [esp + 0xc]
mov ebp, eax
imul ebx, ecx, 0x14
lea edi, [eax + ebx]
imul eax, edx, 0x14
sub edx, ecx
cmp edx, ecx
jae 0x4340a3
imul ebx, edx, 0x14
push ebx
push edi
mov esi, dword [esp + 0x10]
push esi
mov dword [esp + 0xc], eax
call fcn.00570e70
add esp, 0xc
mov eax, dword [esp]
add ebx, esi
lea esi, [ebp + eax - 0x14]
cmp edi, ebp
jbe 0x434102
cmp ebx, dword [esp + 8]
jbe 0x434102
lea ecx, [ebx - 0x14]
lea edx, [edi - 0x14]
call fcn.00425a50
movzx ecx, al
imul edx, ecx, 0x14
neg ecx
imul ecx, ecx, 0x14
lea ebx, [ebx + edx - 0x14]
add edi, ecx
test al, al
mov eax, ebx
cmovne eax, edi
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [esi], xmm0
movsd qword [esi + 8], xmm1
mov eax, dword [eax + 0x10]
mov dword [esi + 0x10], eax
add esi, 0xffffffec
jmp 0x434051
add eax, ebp
mov dword [esp], eax
push ebx
push ebp
mov esi, dword [esp + 0x10]
push esi
call fcn.00570e70
add esp, 0xc
add ebx, esi
cmp esi, ebx
jae 0x434108
cmp edi, dword [esp]
jae 0x434108
mov ecx, edi
mov edx, esi
call fcn.00425a50
test al, al
mov ecx, esi
cmovne ecx, edi
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
movsd qword [ebp], xmm0
movsd qword [ebp + 8], xmm1
mov ecx, dword [ecx + 0x10]
mov dword [ebp + 0x10], ecx
movzx ecx, al
xor al, 1
add ebp, 0x14
movzx eax, al
imul ecx, ecx, 0x14
imul eax, eax, 0x14
add edi, ecx
add esi, eax
jmp 0x4340b9
mov esi, dword [esp + 8]
mov ebp, edi
sub ebx, esi
push ebx
push esi
push ebp
call fcn.00570e70
add esp, 0xc
mov ebp, dword [esp + 0x28]
cmp ebp, dword [esp + 0x24]
jbe 0x434464
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
add eax, dword [esp + 0xc]
cmp ebp, edx
mov dword [ebx + edx*8 + 8], eax
mov dword [ebx + edx*8 + 0xc], ecx
jbe 0x43446f
lea eax, [ebx + edx*8]
lea ecx, [ebx + edx*8 + 8]
not edx
add edx, ebp
shl edx, 3
push edx
push ecx
push eax
call fcn.00570e70
add esp, 0xc
mov edi, dword [esp + 4]
dec ebp
jmp 0x433fa9
mov esi, dword [esp + 0x78]
mov ecx, dword [esp + 0x1c]
jmp 0x433d8d
push 4
pop esi
mov ecx, ebx
mov edx, esi
call fcn.004040f0
mov ecx, dword [esp + 8]
mov edx, esi
call fcn.004040f0
mov edx, dword [esp + 0x54]
movsd xmm0, qword [0x588450]
mov esi, dword [esp + 0xac]
mov al, byte [edx + 0x14]
movss xmm2, dword [edx]
mov byte [esp], al
mov eax, dword [esp + 0x44]
orpd xmm2, xmm0
subsd xmm2, xmm0
lea ecx, [eax + 4]
mov eax, dword [edx]
movd xmm1, ecx
por xmm1, xmm0
subsd xmm1, xmm0
cvtsd2ss xmm0, xmm2
cvtsd2ss xmm1, xmm1
sub eax, ecx
divss xmm1, xmm0
mov dword [esp + 4], eax
setb al
ucomiss xmm1, dword [0x588458]
setbe cl
add esi, 0xcc
or cl, al
mov byte [esp + 0xc], cl
mov ecx, dword [esp + 0x48]
test ecx, ecx
setne byte [esp + 8]
je 0x4342b6
mov eax, dword [esi + 0x78]
or eax, dword [esi + 0x7c]
bt eax, 0x17
jb 0x434295
mov dword [esp + 0x48], ecx
lea edx, [esi - 0xcc]
lea ecx, [esp + 0x2c]
mov ebp, esi
call fcn.0043698f
cmp byte [esp], 0
mov edi, dword [esp + 0x2c]
jne 0x4342a6
cmp dword [ebp + 0xc], 0
lea eax, [ebp + 0xc]
mov ecx, 0x58d5ac
mov ebx, dword [esp + 0x34]
mov esi, ebp
cmove eax, ecx
cmp dword [ebp], 0
cmovne eax, ebp
mov ecx, dword [eax]
mov edx, dword [eax + 8]
call fcn.004361ea
mov ecx, edi
mov edx, ebx
mov ebp, eax
call fcn.004233ec
cmp byte [esp + 0xc], 0
je 0x43427c
mov edx, dword [esp + 0x30]
mov ecx, edi
call fcn.00448429
mov ecx, dword [esp + 0x48]
jmp 0x434295
mov edx, dword [esp + 0x30]
mov ebx, eax
mov ecx, edi
add ebx, ebp
call fcn.00448429
cmp ebx, dword [esp + 4]
mov ecx, dword [esp + 0x48]
ja 0x4342b6
add esi, 0x16c
add ecx, 0xfffffe94
jmp 0x4341f7
mov edx, dword [esp + 0x30]
mov ecx, edi
call fcn.00448429
mov byte [esp + 8], 1
mov ebp, dword [esp + 0x5c]
mov eax, dword [esp + 0x60]
imul ecx, dword [esp + 0x64], 0x14
mov dword [esp + 0x20], eax
lea eax, [ebp + ecx]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 4]
mov dword [esp], eax
mov eax, dword [esp + 0x44]
add eax, 2
mov dword [esp + 0x58], eax
xor eax, eax
test ecx, ecx
je 0x4343fb
mov edi, dword [ebp]
test edi, edi
je 0x4343f8
mov esi, dword [ebp + 4]
mov edx, dword [ebp + 8]
sub eax, 1
mov dword [esp + 0xc], ecx
mov dword [esp + 4], eax
mov dword [esp + 0x28], esi
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x10], edx
jb 0x43432b
mov ecx, dword [esp]
mov edx, str._nParseIntError
push 1
call fcn.004fc225
pop eax
lea ecx, [esp + 0x2c]
mov edx, esi
call fcn.0043698f
mov eax, dword [esi + 0xcc]
mov ecx, dword [esi + 0xd8]
mov ebx, dword [esp]
mov edx, 0x5ba168
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], eax
mov ecx, ebx
push 2
call fcn.004fc225
pop eax
mov ecx, ebx
mov ebx, dword [esp + 0x10]
mov edx, edi
push ebx
call fcn.0041962d
pop eax
cmp byte [esp + 8], 0
jne 0x434389
mov ecx, edi
mov edx, ebx
call fcn.004361ea
mov edx, dword [esp + 0x58]
mov ecx, dword [esp]
sub edx, eax
call fcn.0043621a
cmp dword [esp + 0x18], 0
mov eax, 0x58d5ac
je 0x43439b
lea eax, [esi + 0xd8]
add ebp, 0x14
add esi, 0xcc
cmp dword [esp + 0x24], 0
mov edx, dword [esp + 0x28]
mov ecx, edi
cmove esi, eax
call fcn.00448429
movzx eax, byte [esp + 8]
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x2c]
xor edx, edx
push dword [esp + 0x44]
push eax
push dword [esp + 0x3c]
push edi
push dword [esi + 8]
push dword [esi]
call fcn.0043628b
add esp, 0x18
mov edx, dword [esp + 0x30]
mov ecx, edi
call fcn.00448429
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 4]
add ecx, 0xffffffec
jmp 0x4342ea
add ebp, 0x14
mov eax, dword [esp + 0x14]
sub eax, ebp
push 0x14
pop ecx
xor edx, edx
add ebp, 4
div ecx
mov esi, eax
sub esi, 1
jb 0x434422
mov ecx, dword [ebp - 4]
mov edx, dword [ebp]
call fcn.00448429
add ebp, 0x14
jmp 0x43440d
mov eax, dword [esp + 0x20]
test eax, eax
je 0x43443b
imul eax, eax, 0x14
push 4
pop edx
mov ecx, dword [esp + 0x1c]
push eax
call fcn.004042eb
pop eax
add esp, 0xb8
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0xc]
mov edx, ecx
push 0x5be6b0
jmp 0x43445c
mov edx, dword [esp + 0x24]
push 0x5be6c0
call fcn.00580f00
pop eax
ud2
lea ecx, [esp + 0x2c]
mov edx, 0x5be760
jmp 0x434478
lea ecx, [esp + 0x2c]
mov edx, 0x5be7a0
mov dword [ecx], str.Index_out_of_bounds
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], str.assertion_failed:_mid___self.len__chunk_size_must_be_non_zero
and dword [ecx + 0xc], 0
call fcn.00580e60
ud2
push 0x2c
pop edx
mov ecx, str.assertion_failed:_end___start__end___len
push 0x5be7dc
jmp 0x4344b7
push 0x2b
pop edx
mov ecx, str.called__Option::unwrap____on_a__None__valuecalled__Result::unwrap____on_an__Err__value
push 0x5be790
call fcn.00580fe0
jmp 0x434461
push 0x2b
pop edx
mov ecx, str.called__Option::unwrap____on_a__None__valuecalled__Result::unwrap____on_an__Err__value
push 0x5be770
jmp 0x4344b7
push 0x2b
pop edx
mov ecx, str.called__Option::unwrap____on_a__None__valuecalled__Result::unwrap____on_an__Err__value
push 0x5be780
jmp 0x4344b7