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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x1f0
mov edi, dword [edx + 0xe4]
imul ebx, dword [edx + 0xe8], 0x110
mov dword [esp + 0x74], ecx
mov dword [esp], edx
test ebx, ebx
je 0x43c63d
mov esi, dword [edi + 0x58]
cmp esi, 0x80000001
je 0x43c629
mov edx, dword [edi + 0xf4]
mov ecx, dword [ebp + 0x14]
push dword [edi + 0xf8]
call fcn.0043f2f8
pop ecx
test eax, eax
je 0x43c5b3
cmp dword [eax + 0x1c], 0
cmp esi, 0x80000000
je 0x43c629
mov esi, dword [esp]
lea ecx, [esp + 0xd0]
mov edx, esi
push dword [ebp + 0x14]
push dword [edi + 0x60]
push dword [edi + 0x5c]
push edi
call fcn.0043bc0b
add esp, 0x10
mov eax, dword [esp + 0xd0]
cmp eax, 0x80000000
jne 0x43cb9d
mov ecx, dword [esi + 0x20]
mov eax, esi
mov edx, dword [edi + 0xf4]
mov esi, dword [edi + 0xf8]
test ecx, ecx
je 0x43c620
mov dword [esp + 4], esi
mov esi, edx
mov edx, dword [eax + 0x24]
push dword [esp + 4]
push esi
call fcn.004340fa
mov edx, esi
mov esi, dword [esp + 0xc]
add esp, 8
test al, al
je 0x43c629
mov eax, dword [esp]
mov dword [eax + 0x20], edx
mov dword [eax + 0x24], esi
mov edx, dword [esp]
add edi, 0x110
add ebx, 0xfffffef0
jmp 0x43c57f
mov ecx, dword [edx + 8]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
lea esi, [esp + 0x54]
imul edi, ecx, 0xf8
mov dword [esi], eax
add edi, eax
mov dword [esi + 4], edi
and dword [esi + 8], 0
mov dword [esi + 0xc], ecx
mov dword [esi + 0x10], edx
and dword [esi + 0x14], 0
mov ecx, esi
call fcn.004225c9
test edx, edx
je 0x43c715
mov edi, dword [edx + 0x58]
mov ebx, edx
cmp edi, 0x80000001
je 0x43c665
mov edx, dword [ebx + 0xd4]
mov ecx, dword [ebp + 0x14]
push dword [ebx + 0xd8]
call fcn.0043f2f8
pop ecx
test eax, eax
je 0x43c69e
cmp dword [eax + 0x1c], 0
cmp edi, 0x80000000
je 0x43c665
mov esi, dword [esp]
lea ecx, [esp + 0xd0]
mov edx, esi
push dword [ebp + 0x14]
push dword [ebx + 0x60]
push dword [ebx + 0x5c]
push ebx
call fcn.0043c194
add esp, 0x10
mov eax, dword [esp + 0xd0]
cmp eax, 0x80000000
jne 0x43cb9d
mov ecx, dword [esi + 0x20]
mov edi, dword [ebx + 0xd4]
mov ebx, dword [ebx + 0xd8]
test ecx, ecx
je 0x43c703
mov edx, dword [esi + 0x24]
push ebx
push edi
call fcn.004340fa
pop ecx
pop edx
test al, al
lea esi, [esp + 0x54]
je 0x43c665
jmp 0x43c707
lea esi, [esp + 0x54]
mov eax, dword [esp]
mov dword [eax + 0x20], edi
mov dword [eax + 0x24], ebx
jmp 0x43c665
mov eax, dword [esp]
mov ebx, dword [eax + 0xe4]
imul eax, dword [eax + 0xe8], 0x110
add eax, ebx
mov dword [esp + 0x10], eax
cmp ebx, dword [esp + 0x10]
je 0x43c978
mov esi, ebx
add ebx, 0x110
cmp dword [esi + 0x40], 0x80000000
je 0x43c766
mov edx, dword [esi + 0xf4]
mov ecx, dword [ebp + 0x14]
push dword [esi + 0xf8]
call fcn.0043f2f8
pop ecx
test eax, eax
je 0x43c7fe
mov edi, dword [esi + 0x78]
test edi, edi
je 0x43c72e
mov eax, esi
mov dword [esp + 0xc], ebx
mov esi, dword [esi + 0xf4]
mov ecx, dword [ebp + 0x14]
mov ebx, dword [eax + 0xf8]
mov dword [esp + 8], eax
mov edx, esi
push ebx
call fcn.0043f2f8
pop ecx
test eax, eax
je 0x43c79d
cmp dword [eax + 0x1c], 0
je 0x43c8fb
mov ecx, dword [ebp + 0x14]
mov edx, esi
push ebx
call fcn.0043f2f8
pop ecx
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 8]
test eax, eax
jne 0x43c72e
mov edx, dword [esp]
lea ecx, [esp + 0xd0]
push dword [ebp + 0x14]
push dword [esi + 0x7c]
push edi
push esi
call fcn.0043bc0b
add esp, 0x10
mov eax, dword [esp + 0xd0]
cmp eax, 0x80000000
jne 0x43cbec
mov eax, dword [esp]
mov edx, esi
mov esi, dword [esi + 0xf4]
mov edi, dword [edx + 0xf8]
mov ecx, dword [eax + 0x20]
jmp 0x43c942
mov ecx, dword [esi + 0x48]
mov eax, dword [esi + 0x44]
mov edx, dword [esi + 0x4c]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
imul esi, ecx, 0x18
mov dword [esp + 0x54], eax
add esi, eax
mov dword [esp + 0x58], esi
and dword [esp + 0x5c], 0
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
and dword [esp + 0x68], 0
lea ecx, [esp + 0x54]
call fcn.0042d185
test eax, eax
je 0x43c96b
mov ecx, dword [eax + 0xc]
mov esi, dword [eax + 8]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x14], ecx
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp + 0x14]
push dword [eax + 4]
call fcn.0043f2f8
pop ecx
test eax, eax
je 0x43c82e
test esi, esi
je 0x43c891
mov edi, dword [eax + 0x1c]
mov ebx, dword [eax + 0x18]
shl edi, 4
test edi, edi
je 0x43c82e
mov edx, dword [esp + 4]
mov ecx, esi
push ebx
add ebx, 0x10
call fcn.00440c07
pop ecx
add edi, 0xfffffff0
test al, al
je 0x43c876
mov esi, dword [esp]
lea ecx, [esp + 0xd0]
mov edx, esi
push dword [ebp + 0x14]
push dword [esp + 0x1c]
push dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
push edi
call fcn.0043bc0b
add esp, 0x10
mov eax, dword [esp + 0xd0]
cmp eax, 0x80000000
jne 0x43cbec
mov ecx, dword [esi + 0x20]
mov ebx, esi
mov esi, dword [edi + 0xf4]
mov edi, dword [edi + 0xf8]
test ecx, ecx
je 0x43c8ec
mov edx, dword [ebx + 0x24]
push edi
push esi
call fcn.004340fa
pop ecx
pop edx
test al, al
je 0x43c8f2
mov dword [ebx + 0x20], esi
mov dword [ebx + 0x24], edi
mov ebx, dword [esp + 0xc]
jmp 0x43c72e
mov esi, dword [esp]
lea ecx, [esp + 0xd0]
mov edx, esi
push dword [ebp + 0x14]
mov eax, dword [esp + 0xc]
push dword [eax + 0x7c]
push edi
mov edi, eax
push eax
call fcn.0043bc0b
add esp, 0x10
mov eax, dword [esp + 0xd0]
cmp eax, 0x80000000
jne 0x43cbec
mov ecx, dword [esi + 0x20]
mov esi, dword [edi + 0xf4]
mov edi, dword [edi + 0xf8]
mov ebx, dword [esp + 0xc]
test ecx, ecx
je 0x43c95d
mov eax, dword [esp]
mov edx, dword [eax + 0x24]
push edi
push esi
call fcn.004340fa
pop ecx
pop edx
test al, al
je 0x43c72e
mov eax, dword [esp]
mov dword [eax + 0x20], esi
mov dword [eax + 0x24], edi
jmp 0x43c72e
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 8]
jmp 0x43c766
mov edx, dword [esp]
lea edi, [esp + 0x38]
mov ecx, dword [edx + 8]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
imul esi, ecx, 0xf8
mov dword [edi], eax
add esi, eax
mov dword [edi + 4], esi
and dword [edi + 8], 0
mov dword [edi + 0xc], ecx
mov dword [edi + 0x10], edx
and dword [edi + 0x14], 0
lea ecx, [esp + 0x38]
call fcn.004225c9
test edx, edx
je 0x43cc6d
cmp dword [edx + 0x40], 0x80000000
mov ebx, edx
je 0x43c9d8
mov edx, dword [ebx + 0xd4]
mov ecx, dword [ebp + 0x14]
push dword [ebx + 0xd8]
call fcn.0043f2f8
pop ecx
test eax, eax
je 0x43ca31
mov edi, dword [ebx + 0x78]
test edi, edi
je 0x43c9a3
mov esi, dword [ebx + 0xd4]
mov dword [esp + 8], ebx
mov ebx, dword [ebx + 0xd8]
mov ecx, dword [ebp + 0x14]
mov edx, esi
push ebx
call fcn.0043f2f8
pop ecx
test eax, eax
je 0x43ca09
cmp dword [eax + 0x1c], 0
je 0x43cb2a
mov ecx, dword [ebp + 0x14]
mov edx, esi
push ebx
call fcn.0043f2f8
pop ecx
mov ebx, dword [esp + 8]
test eax, eax
jne 0x43c9a3
mov esi, dword [esp]
lea ecx, [esp + 0xd0]
mov edx, esi
push dword [ebp + 0x14]
jmp 0x43cb3d
mov ecx, dword [ebx + 0x48]
mov eax, dword [ebx + 0x44]
mov edx, dword [ebx + 0x4c]
mov dword [esp + 8], ebx
imul esi, ecx, 0x18
mov dword [esp + 0x54], eax
add esi, eax
mov dword [esp + 0x58], esi
and dword [esp + 0x5c], 0
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
and dword [esp + 0x68], 0
lea ecx, [esp + 0x54]
call fcn.0042d185
test eax, eax
je 0x43cb94
mov ecx, dword [eax + 0xc]
mov esi, dword [eax + 8]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0xc], ecx
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp + 0x14]
push dword [eax + 4]
call fcn.0043f2f8
pop ecx
test eax, eax
je 0x43ca5d
test esi, esi
je 0x43cac0
mov edi, dword [eax + 0x1c]
mov ebx, dword [eax + 0x18]
shl edi, 4
test edi, edi
je 0x43ca5d
mov edx, dword [esp + 4]
mov ecx, esi
push ebx
add ebx, 0x10
call fcn.00440c07
pop ecx
add edi, 0xfffffff0
test al, al
je 0x43caa5
mov esi, dword [esp]
lea ecx, [esp + 0xd0]
mov edx, esi
push dword [ebp + 0x14]
push dword [esp + 0x14]
push dword [esp + 0x14]
mov edi, dword [esp + 0x14]
push edi
call fcn.0043c194
add esp, 0x10
mov eax, dword [esp + 0xd0]
cmp eax, 0x80000000
jne 0x43cbec
mov ecx, dword [esi + 0x20]
mov ebx, esi
mov esi, dword [edi + 0xd4]
mov edi, dword [edi + 0xd8]
test ecx, ecx
je 0x43cb1f
mov edx, dword [ebx + 0x24]
push edi
push esi
call fcn.004340fa
pop ecx
pop edx
test al, al
je 0x43c9a3
mov dword [ebx + 0x20], esi
mov dword [ebx + 0x24], edi
jmp 0x43c9a3
mov esi, dword [esp]
lea ecx, [esp + 0xd0]
mov edx, esi
push dword [ebp + 0x14]
mov ebx, dword [esp + 0xc]
push dword [ebx + 0x7c]
push edi
push ebx
call fcn.0043c194
add esp, 0x10
mov eax, dword [esp + 0xd0]
cmp eax, 0x80000000
jne 0x43cbec
mov ecx, dword [esi + 0x20]
mov esi, dword [ebx + 0xd4]
mov edi, dword [ebx + 0xd8]
test ecx, ecx
je 0x43cb86
mov eax, dword [esp]
mov edx, dword [eax + 0x24]
push edi
push esi
call fcn.004340fa
pop ecx
pop edx
test al, al
je 0x43c9a3
mov eax, dword [esp]
mov dword [eax + 0x20], esi
mov dword [eax + 0x24], edi
jmp 0x43c9a3
mov ebx, dword [esp + 8]
jmp 0x43c9d8
lea edx, [esp + 0xd4]
mov ecx, dword [edx + 8]
movsd xmm0, qword [edx]
mov dword [esp + 0x40], ecx
movsd qword [esp + 0x38], xmm0
movsd xmm0, qword [esp + 0xe0]
mov ecx, dword [esp + 0xe8]
movsd qword [esp + 0x44], xmm0
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x74]
movsd xmm0, qword [esp + 0x48]
movsd xmm1, qword [esp + 0x40]
movsd qword [ecx + 0x14], xmm0
movsd xmm0, qword [esp + 0x38]
jmp 0x43cc4e
lea edx, [esp + 0xd4]
mov ecx, dword [edx + 8]
movsd xmm0, qword [edx]
mov dword [esp + 0xa0], ecx
movsd qword [esp + 0x98], xmm0
movsd xmm0, qword [esp + 0xe0]
mov ecx, dword [esp + 0xe8]
movsd qword [esp + 0xa4], xmm0
mov dword [esp + 0xac], ecx
mov ecx, dword [esp + 0x74]
movsd xmm0, qword [esp + 0xa8]
movsd xmm1, qword [esp + 0xa0]
movsd qword [ecx + 0x14], xmm0
movsd xmm0, qword [esp + 0x98]
movsd qword [ecx + 0xc], xmm1
movsd qword [ecx + 4], xmm0
mov dword [ecx], eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
call fcn.00450a23
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [ebp + 8]
mov esi, dword [ebp + 0x14]
mov eax, dword [ecx]
cmp eax, 1
mov dword [esp + 0x1c], eax
jne 0x43cd63
mov eax, dword [ecx + 4]
mov ebx, dword [ecx + 8]
mov ecx, dword [esp]
mov edi, 0xfffffef0
add edi, dword [ecx + 0xe4]
imul esi, dword [ecx + 0xe8], 0x110
mov dword [esp + 4], eax
test esi, esi
je 0x43ccd2
mov ecx, dword [edi + 0x204]
mov edx, dword [edi + 0x208]
push ebx
push dword [esp + 8]
call fcn.00421605
pop ecx
pop edx
add edi, 0x110
add esi, 0xfffffef0
test al, al
je 0x43cca4
jmp 0x43ccd4
xor edi, edi
mov ecx, edi
mov edx, 0x5038fc
call fcn.00437af5
lea ebx, [esp + 0xd0]
mov edx, edi
mov ecx, ebx
call fcn.0042bfdb
mov esi, dword [ebp + 0x14]
mov edx, dword [esp]
lea edi, [esp + 0x54]
mov ecx, edi
push esi
call fcn.0043ed8f
pop eax
mov eax, dword [edi]
cmp eax, 0x80000000
jne 0x43d38c
mov edx, dword [esp + 0x1c4]
mov ecx, esi
push dword [esp + 0x1c8]
call fcn.0043f2f8
pop ecx
test eax, eax
je 0x43d422
cmp dword [eax + 0x1c], 0
jne 0x43cd5c
mov eax, dword [esp + 0xf0]
or eax, dword [esp + 0xf4]
je 0x43d422
mov eax, dword [esp + 0xfc]
or eax, dword [esp + 0xf8]
jne 0x43d422
push ebx
call fcn.00421b7c
pop eax
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x43cd7d
cmp dword [esi + 0x20], 0
jne 0x43cd7d
mov ecx, dword [esp]
test byte [ecx + 0x10], 4
jne 0x43d3b8
lea ecx, [esp + 0x78]
mov edx, dword [esi + 4]
and dword [ecx], 0
mov dword [ecx + 4], 4
and dword [ecx + 8], 0
mov ecx, dword [esi]
lea esi, [esp + 0x98]
movdqa xmm0, xmmword [ecx]
lea edx, [ecx + edx + 1]
mov dword [esi], ecx
add ecx, 0x10
mov dword [esi + 4], ecx
mov dword [esi + 8], edx
pmovmskb ecx, xmm0
not ecx
mov word [esi + 0xc], cx
mov dword [esi + 0x10], eax
lea ecx, [esp + 0x98]
call fcn.00424705
mov esi, dword [esp]
test eax, eax
je 0x43d206
mov edi, dword [eax]
mov eax, dword [eax + 4]
lea ecx, [esp + 0x54]
mov edx, esi
mov dword [esp + 0x10], eax
push eax
mov dword [esp + 0x10], edi
push edi
call fcn.004360a0
pop eax
pop ecx
mov eax, dword [esp + 0x54]
cmp eax, 0x80000000
je 0x43ceed
mov esi, dword [esp + 0x58]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x5c]
lea eax, [esi + eax*8]
mov dword [esp + 0x20], esi
mov dword [esp + 0x18], eax
cmp esi, dword [esp + 0x18]
je 0x43cedd
mov ecx, dword [esp]
lea eax, [esi + 8]
mov dword [esp + 0x14], eax
mov ebx, dword [ecx + 0xfc]
imul edi, dword [ecx + 0x100], 0x30
add ebx, 0xffffffd0
test edi, edi
je 0x43ce85
mov ecx, dword [ebx + 0x54]
mov edx, dword [ebx + 0x58]
push dword [esi + 4]
push dword [esi]
call fcn.00421605
pop ecx
pop edx
add ebx, 0x30
add edi, 0xffffffd0
test al, al
je 0x43ce38
cmp byte [ebx + 0x2d], 0
mov edi, dword [esp + 0x14]
je 0x43ce8b
cmp dword [ebx + 0x18], 0x80000000
mov esi, edi
je 0x43ce14
mov edx, dword [ebx + 0x1c]
mov eax, dword [ebx + 0x20]
lea ecx, [esp + 0x78]
lea eax, [edx + eax*8]
push eax
call fcn.0042528f
pop eax
mov esi, edi
jmp 0x43ce14
mov esi, dword [esp + 0x14]
jmp 0x43ce14
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 4]
shl ecx, 3
test ecx, ecx
je 0x43ce62
mov esi, dword [eax + 4]
mov edi, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov ecx, edi
mov edx, esi
push dword [esp + 0x10]
push dword [esp + 0x10]
call fcn.00421605
pop ecx
pop edx
test al, al
jne 0x43cec9
lea ecx, [esp + 0x78]
mov edx, edi
push esi
call fcn.00423932
pop eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x14]
add eax, 8
add ecx, 0xfffffff8
jmp 0x43ce94
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
call fcn.00402f81
mov esi, dword [esp]
mov edi, dword [esi + 0xd8]
imul esi, dword [esi + 0xdc], 0x78
add edi, 0xffffff88
test esi, esi
je 0x43cf28
mov ecx, dword [edi + 0xd4]
mov edx, dword [edi + 0xd8]
push dword [esp + 0x10]
push dword [esp + 0x10]
call fcn.00421605
pop ecx
pop edx
add edi, 0x78
add esi, 0xffffff88
test al, al
je 0x43cefd
jmp 0x43cf2a
xor edi, edi
mov eax, dword [esp]
mov ecx, 0xfffffef0
mov ebx, dword [eax + 0xe4]
imul esi, dword [eax + 0xe8], 0x110
add ebx, ecx
test esi, esi
je 0x43cf75
mov ecx, dword [ebx + 0x204]
mov edx, dword [ebx + 0x208]
push dword [esp + 0x10]
push dword [esp + 0x10]
call fcn.00421605
pop ecx
pop edx
add ebx, 0x110
add esi, 0xfffffef0
test al, al
je 0x43cf44
jmp 0x43cf77
xor ebx, ebx
mov edx, dword [esp]
mov ecx, dword [edx + 8]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
imul esi, ecx, 0xf8
mov dword [esp + 0x38], eax
add esi, eax
mov dword [esp + 0x3c], esi
and dword [esp + 0x40], 0
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], edx
and dword [esp + 0x4c], 0
lea ecx, [esp + 0x38]
call fcn.004225c9
test edx, edx
je 0x43cfd5
mov esi, edx
mov ecx, dword [edx + 0xd4]
mov edx, dword [edx + 0xd8]
push dword [esp + 0x10]
push dword [esp + 0x10]
call fcn.00421605
pop ecx
pop edx
test al, al
je 0x43cfa5
jmp 0x43cfd7
xor esi, esi
test ebx, ebx
cmovne esi, ebx
test edi, edi
cmovne esi, edi
test esi, esi
je 0x43d04c
test ebx, ebx
mov eax, 0x502f50
mov ecx, 0x502fcc
mov edx, 0x502ed4
cmove eax, ecx
test edi, edi
cmovne eax, edx
push esi
call dword [eax + 0x20]
add esp, 4
test eax, eax
je 0x43cdbb
mov esi, eax
shl edx, 3
test edx, edx
je 0x43cdbb
mov ebx, dword [esi]
mov edi, dword [esi + 4]
mov ecx, dword [ebp + 0x14]
mov dword [esp + 4], edx
mov edx, ebx
push edi
call fcn.0043f2f8
pop ecx
test eax, eax
je 0x43d040
lea ecx, [esp + 0x78]
mov edx, ebx
push edi
call fcn.00423932
pop eax
mov edx, dword [esp + 4]
add esi, 8
add edx, 0xfffffff8
jmp 0x43d012
mov esi, dword [esp]
lea ecx, [esp + 0x28]
mov edx, esi
push dword [esp + 0x10]
push dword [esp + 0x10]
call fcn.004236ef
pop eax
pop ecx
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
lea eax, [ecx + eax*8]
mov ebx, ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
cmp ebx, dword [esp + 0xc]
je 0x43d1f4
mov edi, dword [esi + 0xd8]
imul esi, dword [esi + 0xdc], 0x78
lea eax, [ebx + 8]
mov dword [esp + 8], eax
add edi, 0xffffff88
test esi, esi
je 0x43d0c2
mov ecx, dword [edi + 0xd4]
mov edx, dword [edi + 0xd8]
push dword [ebx + 4]
push dword [ebx]
call fcn.00421605
pop ecx
pop edx
add edi, 0x78
add esi, 0xffffff88
test al, al
je 0x43d09a
jmp 0x43d0c4
xor edi, edi
mov eax, dword [esp]
mov dword [esp + 4], ebx
mov ecx, 0xfffffef0
mov ebx, dword [eax + 0xe4]
imul esi, dword [eax + 0xe8], 0x110
add ebx, ecx
test esi, esi
je 0x43d114
mov eax, dword [esp + 4]
mov ecx, dword [ebx + 0x204]
mov edx, dword [ebx + 0x208]
push dword [eax + 4]
push dword [eax]
call fcn.00421605
pop ecx
pop edx
add ebx, 0x110
add esi, 0xfffffef0
test al, al
je 0x43d0e2
jmp 0x43d116
xor ebx, ebx
mov edx, dword [esp]
mov ecx, dword [edx + 8]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
imul esi, ecx, 0xf8
mov dword [esp + 0x54], eax
add esi, eax
mov dword [esp + 0x58], esi
and dword [esp + 0x5c], 0
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
and dword [esp + 0x68], 0
lea ecx, [esp + 0x54]
call fcn.004225c9
test edx, edx
je 0x43d175
mov eax, dword [esp + 4]
mov esi, edx
mov ecx, dword [edx + 0xd4]
mov edx, dword [edx + 0xd8]
push dword [eax + 4]
push dword [eax]
call fcn.00421605
pop ecx
pop edx
test al, al
je 0x43d144
jmp 0x43d177
xor esi, esi
test ebx, ebx
cmovne esi, ebx
test edi, edi
cmovne esi, edi
test esi, esi
je 0x43ec37
test ebx, ebx
mov eax, 0x502f50
mov ecx, 0x502fcc
mov edx, 0x502ed4
cmove eax, ecx
test edi, edi
cmovne eax, edx
push esi
call dword [eax + 0x20]
add esp, 4
test eax, eax
je 0x43d1e8
mov esi, eax
shl edx, 3
test edx, edx
je 0x43d1e8
mov ebx, dword [esi]
mov edi, dword [esi + 4]
mov ecx, dword [ebp + 0x14]
mov dword [esp + 4], edx
mov edx, ebx
push edi
call fcn.0043f2f8
pop ecx
test eax, eax
je 0x43d1dc
lea ecx, [esp + 0x78]
mov edx, ebx
push edi
call fcn.00423932
pop eax
mov edx, dword [esp + 4]
add esi, 8
add edx, 0xfffffff8
jmp 0x43d1b2
mov ebx, dword [esp + 8]
mov esi, dword [esp]
jmp 0x43d079
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
call fcn.00402f81
jmp 0x43cdbb
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x80]
lea eax, [ecx + eax*8]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
cmp ecx, dword [esp + 0x10]
je 0x43d4dd
mov edx, dword [esp]
lea eax, [ecx + 8]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov eax, dword [edx + 0xfc]
imul esi, dword [edx + 0x100], 0x30
test esi, esi
je 0x43d2ca
lea ecx, [eax + 0x30]
mov edx, dword [eax + 0x28]
mov dword [esp + 4], ecx
mov ecx, dword [eax + 0x24]
mov eax, dword [esp + 8]
mov edi, dword [eax]
mov ebx, dword [eax + 4]
push ebx
push edi
call fcn.00421605
pop ecx
pop edx
add esi, 0xffffffd0
test al, al
mov eax, dword [esp + 4]
je 0x43d241
mov edx, dword [esp]
lea ecx, [esp + 0x54]
push ebx
push edi
call fcn.004236ef
pop eax
pop ecx
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x54]
lea edx, [eax + esi*8]
shl esi, 3
mov dword [esp + 0x54], eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 8], edx
mov dword [esp + 0x60], edx
test esi, esi
je 0x43d2ff
mov edx, dword [eax]
mov ebx, dword [eax + 4]
mov ecx, dword [ebp + 0x14]
lea edi, [eax + 8]
mov dword [esp + 4], edx
push ebx
call fcn.00424b02
pop ecx
add esi, 0xfffffff8
test al, al
mov eax, edi
je 0x43d2a5
jmp 0x43d319
mov eax, dword [esp + 8]
mov ecx, dword [ebp + 0x14]
mov edi, dword [eax]
mov esi, dword [eax + 4]
mov edx, edi
push esi
call fcn.0043f2f8
pop ecx
mov edx, dword [esp + 0xc]
test eax, eax
mov ecx, edx
je 0x43d21c
mov ecx, dword [eax]
or ecx, dword [eax + 4]
mov ecx, edx
je 0x43d21c
jmp 0x43ec1b
mov eax, dword [esp + 8]
lea ecx, [esp + 0x54]
mov dword [esp + 0x58], eax
call fcn.004236ad
mov ecx, dword [esp + 0xc]
jmp 0x43d21c
mov edx, dword [esp]
lea esi, [esp + 0x54]
lea ecx, [esp + 0xd0]
mov dword [esi + 4], edi
push dword [ebp + 0x14]
push ebx
push dword [esp + 0xc]
call fcn.0043f443
add esp, 0xc
mov ecx, esi
call fcn.004236ad
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x14]
call fcn.00402f81
mov eax, dword [esp + 0xd0]
mov esi, dword [ebp + 0x14]
cmp eax, 0x80000000
je 0x43d4ed
movsd xmm0, qword [esp + 0xe4]
mov ecx, dword [esp + 0x74]
movsd xmm1, qword [esp + 0xdc]
movsd qword [ecx + 0x14], xmm0
movsd xmm0, qword [esp + 0xd4]
jmp 0x43cc4e
movsd xmm0, qword [esp + 0x68]
mov ecx, dword [esp + 0x74]
movsd xmm2, qword [esp + 0x58]
movsd xmm1, qword [esp + 0x60]
movsd qword [ecx + 0x14], xmm0
movsd qword [ecx + 0xc], xmm1
movsd qword [ecx + 4], xmm2
mov dword [ecx], eax
jmp 0x43d48f
and dword [esp + 0x54], 0
mov dword [esp + 0x58], 1
and dword [esp + 0x5c], 0
mov edx, dword [esp]
lea esi, [esp + 0xd0]
lea eax, [esp + 0x54]
mov ecx, esi
push eax
call fcn.0043ec55
pop eax
mov eax, dword [esi]
cmp eax, 0x80000000
jne 0x43d49b
mov edx, dword [esp + 0x58]
lea esi, [esp + 0xd0]
mov ecx, esi
push dword [esp + 0x5c]
call fcn.0041ef40
pop eax
mov edi, dword [esp + 0x74]
mov edx, esi
mov ecx, edi
call fcn.0042b5d9
mov dword [edi + 0xc], 0x80000000
mov byte [edi + 0x18], 0xc
jmp 0x43d4cb
sub esp, 4
mov edi, dword [esp + 4]
lea ecx, [esp + 0x58]
mov edx, edi
push 0
push esi
call fcn.0043bd8e
add esp, 0xc
lea eax, [esp + 0x54]
mov ebx, dword [eax + 4]
mov eax, dword [edi + 0x10]
mov ecx, eax
shr ecx, 0x17
and cl, 1
bt eax, 0x19
movzx eax, cl
push 2
pop esi
mov ecx, dword [esp + 0x74]
cmovae esi, eax
lea edx, [esp + 0xd0]
push esi
lea esi, [esp + 0x58]
push dword [esi + 8]
push ebx
push 0x421f82
push fcn.00421ba8
call fcn.0043f30e
add esp, 0x14
mov ecx, dword [esi]
mov edx, ebx
lea ebx, [esp + 0xd0]
call fcn.004b2152
push ebx
call fcn.00421b7c
pop eax
jmp 0x43cc5a
movsd xmm0, qword [esp + 0xe4]
mov ecx, dword [esp + 0x74]
movsd xmm2, qword [esp + 0xd4]
movsd xmm1, qword [esp + 0xdc]
movsd qword [ecx + 0x14], xmm0
movsd qword [ecx + 0xc], xmm1
movsd qword [ecx + 4], xmm2
mov dword [ecx], eax
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
call fcn.004b2152
jmp 0x43cc5a
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x14]
call fcn.00402f81
mov esi, dword [ebp + 0x14]
cmp dword [esp + 0x1c], 1
je 0x43d52b
mov eax, dword [esp]
test byte [eax + 0x10], 1
je 0x43d506
cmp dword [ebp + 0xc], 0x80000000
jne 0x43d52b
mov edx, dword [esp]
mov eax, esi
lea esi, [esp + 0xd0]
mov ecx, esi
push eax
call fcn.0043ed8f
pop eax
mov eax, dword [esi]
cmp eax, 0x80000000
jne 0x43d363
mov esi, dword [ebp + 0x14]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov esi, dword [esi + 0xc]
lea edi, [esp + 0x98]
movdqa xmm0, xmmword [eax]
lea ecx, [eax + ecx + 1]
mov dword [edi], eax
add eax, 0x10
mov dword [edi + 4], eax
mov dword [edi + 8], ecx
pmovmskb edx, xmm0
not edx
mov word [edi + 0xc], dx
mov dword [edi + 0x10], esi
lea ecx, [esp + 0x98]
call fcn.00424705
test eax, eax
mov dword [esp + 0x18], edx
mov dword [esp + 8], eax
je 0x43eb8e
mov eax, dword [esp]
mov ecx, 0xfffffef0
mov edx, dword [eax + 0xe4]
imul edi, dword [eax + 0xe8], 0x110
add edx, ecx
test edi, edi
je 0x43d630
mov esi, dword [edx + 0x208]
mov ebx, dword [edx + 0x204]
mov eax, dword [esp + 8]
mov dword [esp + 4], edx
mov edx, esi
mov ecx, ebx
push dword [eax + 4]
push dword [eax]
call fcn.00421605
mov edx, dword [esp + 0xc]
add esp, 8
add edx, 0x110
add edi, 0xfffffef0
test al, al
je 0x43d590
mov eax, dword [edx]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x18]
mov dword [esp + 4], edx
or eax, dword [edx + 4]
je 0x43d841
mov edi, dword [edx + 0xc]
mov ecx, dword [edx + 8]
test byte [edx + 0x10c], 2
mov dword [esp + 0x10], edi
jne 0x43d7ea
mov dword [esp + 0x94], ebx
mov ebx, dword [esi + 0x1c]
mov eax, ecx
xor eax, ebx
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x94]
or eax, edi
je 0x43d841
xor ebx, ebx
cmp dword [esp + 0xc], 1
mov dword [esp + 8], ecx
jmp 0x43db38
mov eax, dword [esp]
mov ebx, dword [eax + 0xd8]
imul edi, dword [eax + 0xdc], 0x78
add ebx, 0xffffff88
test edi, edi
je 0x43d732
mov eax, dword [esp + 8]
mov ecx, dword [ebx + 0xd4]
mov edx, dword [ebx + 0xd8]
push dword [eax + 4]
push dword [eax]
call fcn.00421605
pop ecx
pop edx
add ebx, 0x78
add edi, 0xffffff88
test al, al
je 0x43d643
push ebx
call fcn.00421891
pop ecx
mov esi, dword [ebp + 0x14]
test eax, eax
je 0x43d922
mov dword [esp + 0x70], edx
shl edx, 4
mov ecx, eax
add edx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x84], edx
mov edi, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
shl eax, 4
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], eax
cmp ecx, edx
je 0x43e324
mov eax, ecx
add ecx, 0x10
mov edi, dword [eax]
test edi, edi
mov dword [esp + 4], edi
je 0x43d6ae
mov esi, dword [eax + 4]
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov dword [esp + 8], esi
mov esi, dword [esp + 0x24]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
test edi, edi
je 0x43d71f
mov edx, dword [esp + 4]
mov ecx, esi
push dword [esp + 8]
call fcn.004403bf
pop ecx
test al, al
je 0x43d717
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0xc]
push dword [esp + 0x10]
call fcn.00424b02
pop ecx
test al, al
je 0x43d8f4
add esi, 0x10
add edi, 0xfffffff0
jmp 0x43d6e6
mov esi, dword [ebp + 0x14]
mov edx, dword [esp + 0x84]
mov ecx, dword [esp + 0x14]
jmp 0x43d6ae
mov edx, dword [esp]
mov ecx, dword [edx + 8]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
imul edi, ecx, 0xf8
mov dword [esp + 0x38], eax
add edi, eax
mov dword [esp + 0x3c], edi
and dword [esp + 0x40], 0
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], edx
and dword [esp + 0x4c], 0
lea ecx, [esp + 0x38]
call fcn.004225c9
test edx, edx
je 0x43d991
mov eax, dword [esp + 8]
mov edi, edx
mov ecx, dword [edx + 0xd4]
mov edx, dword [edx + 0xd8]
push dword [eax + 4]
push dword [eax]
call fcn.00421605
pop ecx
pop edx
test al, al
je 0x43d760
mov eax, dword [edi]
mov ecx, edi
mov dword [esp + 0xc], edi
or eax, dword [edi + 4]
je 0x43e0c2
mov ebx, dword [ecx + 0xc]
mov esi, dword [ecx + 8]
test byte [ecx + 0xec], 2
jne 0x43e06c
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0x1c]
mov eax, esi
xor eax, edx
or eax, ebx
je 0x43e0c2
mov dword [esp + 4], ebx
xor ebx, ebx
cmp edx, 1
mov dword [esp + 8], esi
mov esi, 0x503966
mov eax, str.asere
mov dword [esp + 0x10], edx
jmp 0x43e3e8
mov eax, ecx
or eax, edi
je 0x43ec41
mov eax, edi
mov edi, dword [esi + 0x1c]
push eax
push ecx
push 0
push edi
mov dword [esp + 0x18], ecx
call fcn.004f2904
mov ecx, dword [esp + 0x18]
add esp, 0x10
or edx, eax
mov edx, dword [esp + 4]
je 0x43d841
test ecx, ecx
je 0x43ec4b
mov eax, edi
xor edx, edx
div ecx
cmp edi, 1
mov dword [esp + 0xc], edx
jne 0x43db33
push 2
pop ebx
mov dword [esp + 0x14], str.asere
jmp 0x43db4f
mov eax, dword [edx + 0x10]
or eax, dword [edx + 0x14]
je 0x43d9d1
mov ecx, dword [esi + 0x1c]
mov eax, dword [edx + 0x1c]
cmp dword [edx + 0x18], ecx
sbb eax, 0
jae 0x43d9d4
mov eax, dword [esi + 0x18]
shl ecx, 4
mov esi, ecx
mov ecx, dword [eax + ecx - 0xc]
mov edx, dword [eax + esi - 8]
call fcn.00421362
mov ecx, eax
push 0x50396c
push 0x23
push str.unexpected_invalid_UTF_8_code_point
call fcn.0042138c
add esp, 0xc
mov ebx, eax
mov dword [esp + 8], edx
sub esp, 4
mov esi, dword [esp + 4]
lea ecx, [esp + 0x3c]
mov edx, esi
push 0
push dword [ebp + 0x14]
call fcn.0043bd8e
add esp, 0xc
mov eax, dword [esi + 0x10]
mov edi, dword [esp + 0x3c]
mov ecx, eax
shr ecx, 0x17
and cl, 1
bt eax, 0x19
movzx eax, cl
push 2
pop ecx
cmovb eax, ecx
lea ecx, [esp + 0xd0]
mov edx, ebx
push eax
push dword [esp + 0x44]
push edi
push 0x421f82
push fcn.00421ba8
push dword [esp + 0x18]
push dword [esp + 0x20]
call fcn.0043fae2
add esp, 0x1c
jmp 0x43dbb9
sub esp, 4
mov edx, dword [esp + 4]
lea ecx, [esp + 0xd4]
push 0
mov esi, dword [ebp + 0x14]
push esi
call fcn.004403db
add esp, 0xc
mov eax, dword [esp + 0xd0]
cmp eax, 0x80000000
jne 0x43eb5f
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 4]
cmp dword [ecx], 2
sbb eax, 0
jb 0x43d55a
test byte [ebx + 0x74], 2
jne 0x43d55a
sub esp, 4
mov edi, dword [esp + 4]
lea ecx, [esp + 0x3c]
mov edx, edi
push 0
push esi
call fcn.0043bd8e
add esp, 0xc
mov eax, dword [edi + 0x10]
mov esi, dword [esp + 0x3c]
mov ecx, eax
shr ecx, 0x17
and cl, 1
bt eax, 0x19
movzx eax, cl
push 2
pop ecx
cmovb eax, ecx
lea ecx, [esp + 0xd0]
mov edx, ebx
push eax
push dword [esp + 0x44]
push esi
push 0x421765
push fcn.004216de
jmp 0x43e007
mov eax, dword [esp]
mov edi, dword [eax + 0xfc]
imul ebx, dword [eax + 0x100], 0x30
add edi, 0xffffffd0
test ebx, ebx
je 0x43dae8
mov eax, dword [esp + 8]
mov ecx, dword [edi + 0x54]
mov edx, dword [edi + 0x58]
push dword [eax + 4]
push dword [eax]
call fcn.00421605
pop ecx
pop edx
add edi, 0x30
add ebx, 0xffffffd0
test al, al
je 0x43d9a4
jmp 0x43daea
mov ecx, dword [esi + 0x1c]
mov eax, dword [edx + 0x20]
or eax, dword [edx + 0x24]
je 0x43da6b
mov edi, dword [edx + 0x28]
mov esi, dword [edx + 0x2c]
mov eax, 0
cmp ecx, edi
sbb eax, esi
jae 0x43dadb
sub esp, 4
mov ebx, dword [esp + 4]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x3c]
mov edx, ebx
push 0
push dword [ebp + 0x14]
call fcn.0043bd8e
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x10]
mov ecx, eax
shr ecx, 0x17
and cl, 1
bt eax, 0x19
movzx eax, cl
push 2
pop ecx
mov edx, dword [esp + 4]
cmovb eax, ecx
lea ecx, [esp + 0xd0]
push eax
push dword [esp + 0x44]
mov ebx, dword [esp + 0x10]
push ebx
push dword [esp + 0x28]
push esi
push edi
push 0x421f82
push fcn.00421ba8
call fcn.0043fc55
add esp, 0x20
mov ecx, dword [esp + 0x38]
mov edx, ebx
jmp 0x43dbbf
mov eax, dword [esp + 0x20]
test ecx, ecx
jne 0x43dbed
sub esp, 4
mov edi, dword [esp + 4]
mov ebx, edx
lea ecx, [esp + 0x3c]
mov edx, edi
push 0
push dword [ebp + 0x14]
call fcn.0043bd8e
add esp, 0xc
mov eax, dword [edi + 0x10]
mov esi, dword [esp + 0x3c]
mov ecx, eax
shr ecx, 0x17
and cl, 1
bt eax, 0x19
movzx eax, cl
push 2
pop ecx
cmovb eax, ecx
lea ecx, [esp + 0xd0]
mov edx, ebx
push eax
push dword [esp + 0x44]
push esi
push 0x421f82
push fcn.00421ba8
call fcn.0043f30e
add esp, 0x14
mov ecx, dword [esp + 0x38]
mov edx, esi
jmp 0x43dbbf
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
jmp 0x43dbed
xor edi, edi
mov ecx, edi
mov edx, 0x503934
call fcn.004238d4
cmp dword [edi + 0xc], 0x80000000
je 0x43d55a
mov esi, dword [edi + 0x14]
mov eax, dword [edi + 0x10]
shl esi, 3
test esi, esi
je 0x43d55a
mov edx, dword [eax]
mov ecx, dword [ebp + 0x14]
lea edi, [eax + 8]
push dword [eax + 4]
call fcn.00424b02
pop ecx
add esi, 0xfffffff8
test al, al
mov eax, edi
jne 0x43db0c
jmp 0x43eb96
xor ebx, ebx
cmp edx, 1
sete bl
mov ecx, 0x503966
mov eax, str.asere
cmove ecx, eax
xor ebx, 3
mov dword [esp + 0x14], ecx
sub esp, 4
mov esi, dword [esp + 4]
lea ecx, [esp + 0x3c]
mov edx, esi
push 0
push dword [ebp + 0x14]
call fcn.0043bd8e
add esp, 0xc
mov eax, dword [esi + 0x10]
mov edi, dword [esp + 0x3c]
mov ecx, eax
shr ecx, 0x17
and cl, 1
bt eax, 0x19
movzx eax, cl
push 2
pop ecx
mov edx, dword [esp + 4]
cmovb eax, ecx
lea ecx, [esp + 0xd0]
push eax
push dword [esp + 0x44]
push edi
push ebx
push dword [esp + 0x24]
push dword [esp + 0x20]
push dword [esp + 0x28]
push dword [esp + 0x24]
push 0x421f82
push fcn.00421ba8
call fcn.0043f913
add esp, 0x28
mov ecx, dword [esp + 0x38]
mov edx, edi
call fcn.004b2152
mov eax, dword [esp + 0xd0]
cmp eax, 0x80000000
jne 0x43eb5f
mov edx, dword [esp + 4]
mov esi, dword [esp + 0x18]
mov ecx, dword [esi + 0x1c]
mov ebx, dword [edx + 0xf4]
mov eax, dword [edx + 0xf8]
mov esi, dword [esi + 0x18]
shl ecx, 4
mov edi, dword [edx + 0x6c]
mov dword [esp + 0x94], ebx
mov ebx, dword [edx + 0x74]
mov dword [esp + 0x20], eax
add ecx, esi
mov dword [esp + 0xc0], edi
mov edi, dword [edx + 0x70]
mov dword [esp + 0xb8], ebx
mov dword [esp + 0x1c], ecx
mov ecx, dword [edx + 0x10c]
mov dword [esp + 0x84], edi
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0x68]
lea edx, [edi + 8]
mov dword [esp + 0xb4], edx
mov dword [esp + 0x70], ecx
add ecx, 8
mov dword [esp + 0xbc], ecx
cmp esi, dword [esp + 0x1c]
je 0x43e01f
mov ecx, esi
mov esi, dword [esp]
mov dword [esp + 0xc], ecx
test byte [esi + 0x12], 1
je 0x43dc77
mov eax, dword [esp + 0xc]
mov ecx, dword [ecx + 4]
mov edx, dword [eax + 8]
call fcn.00421362
test eax, eax
je 0x43e263
push dword [esp + 4]
call fcn.004221c8
pop ecx
test eax, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
je 0x43dd2b
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0xc4]
mov edx, dword [eax + 4]
push dword [eax + 8]
call fcn.004e3f90
pop eax
bt dword [esp + 0x24], 0x10
jb 0x43dcd8
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xcc]
mov ebx, ecx
push dword [esp + 0x10]
push dword [esp + 0x18]
call fcn.004238ee
pop ecx
pop edx
test al, al
jne 0x43dd1a
jmp 0x43de27
mov eax, dword [esp + 0xcc]
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0xc8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x14]
shl esi, 3
test esi, esi
je 0x43de27
mov ecx, dword [eax]
mov edx, dword [eax + 4]
lea edi, [eax + 8]
push dword [esp + 8]
push ebx
call fcn.0043fe3d
pop ecx
pop edx
add esi, 0xfffffff8
test al, al
mov eax, edi
je 0x43dcf5
mov ecx, dword [esp + 0xc4]
mov edx, ebx
call fcn.00450a23
mov esi, dword [esp]
test byte [esp + 0x24], 4
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0xc]
jne 0x43dd5f
cmp dword [edx + 8], 0
jne 0x43dd5f
mov edx, dword [esp + 0x94]
mov ecx, dword [ebp + 0x14]
push eax
call fcn.00424b02
mov edx, dword [esp + 0x10]
add esp, 4
test al, al
jne 0x43e954
cmp dword [esp + 0x70], 0
je 0x43ddcc
mov ebx, dword [esp + 0xc0]
mov eax, edx
mov edx, dword [edx + 4]
lea ecx, [esp + 0x38]
mov esi, dword [ebx + 8]
dec esi
and esi, 0xfffffff8
add esi, dword [esp + 0xbc]
push dword [eax + 8]
call fcn.004e3f90
pop eax
lea edi, [esp + 0x28]
lea edx, [esp + 0x38]
mov ecx, edi
call fcn.0042b5d9
push edi
push esi
lea eax, [esp + 0x80]
push eax
call dword [ebx + 0x14]
add esp, 0xc
cmp dword [esp + 0x78], 0x80000000
jne 0x43e205
mov edx, dword [esp + 0x7c]
mov ecx, 0x80000000
call fcn.00450a23
mov edx, dword [esp + 0xc]
cmp dword [esp + 0x84], 0
lea esi, [edx + 0x10]
je 0x43dc47
mov ecx, dword [esp + 0xb8]
mov eax, dword [ecx + 8]
dec eax
and eax, 0xfffffff8
add eax, dword [esp + 0xb4]
push dword [edx + 8]
push dword [edx + 4]
push eax
lea eax, [esp + 0x44]
push eax
call dword [ecx + 0x14]
add esp, 0x10
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
cmp edi, 0x80000000
jne 0x43e2b1
mov ecx, 0x80000000
call fcn.00450a23
jmp 0x43dc47
sub esp, 4
mov edi, dword [esp + 4]
lea ecx, [esp + 0x3c]
mov edx, edi
push 0
push dword [ebp + 0x14]
call fcn.0043bd8e
add esp, 0xc
mov eax, dword [edi + 0x10]
mov esi, dword [esp + 0x3c]
mov ecx, eax
shr ecx, 0x17
and cl, 1
bt eax, 0x19
movzx eax, cl
push 2
pop ecx
cmovb eax, ecx
lea ecx, [esp + 0xd0]
lea edx, [esp + 0xc4]
push eax
push dword [esp + 0x44]
push esi
push 0x421f82
push fcn.00421ba8
push dword [esp + 0x18]
push dword [esp + 0x28]
push dword [esp + 0x30]
call fcn.0043fe8b
add esp, 0x20
mov ecx, dword [esp + 0x38]
mov edx, esi
call fcn.004b2152
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 4]
cmp eax, 0x80000000
jne 0x43eb5f
push ecx
call fcn.004220c6
pop ecx
mov esi, dword [ebp + 0x14]
test eax, eax
je 0x43df94
mov dword [esp + 0x70], edx
shl edx, 4
mov ebx, eax
add edx, eax
mov eax, dword [esp + 0x18]
mov edi, ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x24], edx
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
shl eax, 4
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], eax
cmp edi, dword [esp + 0x24]
je 0x43e028
mov eax, edi
add edi, 0x10
mov ecx, dword [eax]
test ecx, ecx
mov dword [esp + 8], ecx
je 0x43deef
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
test ebx, ebx
je 0x43df5a
mov edx, dword [esp + 8]
mov ecx, esi
push dword [esp + 0xc]
call fcn.004403bf
pop ecx
test al, al
je 0x43df52
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0x10]
push dword [esp + 0x14]
call fcn.00424b02
pop ecx
test al, al
je 0x43df66
add esi, 0x10
add ebx, 0xfffffff0
jmp 0x43df25
mov esi, dword [ebp + 0x14]
mov ebx, dword [esp + 0x84]
jmp 0x43deef
sub esp, 4
mov edx, dword [esp + 4]
lea ecx, [esp + 0xd4]
push 0
mov esi, dword [ebp + 0x14]
push esi
call fcn.004403db
add esp, 0xc
mov eax, dword [esp + 0xd0]
cmp eax, 0x80000000
jne 0x43eb5f
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 4]
cmp dword [ecx], 2
sbb eax, 0
jb 0x43d55a
mov eax, dword [esp + 4]
test byte [eax + 0x10c], 2
jne 0x43d55a
sub esp, 4
mov edi, dword [esp + 4]
lea ecx, [esp + 0x3c]
mov edx, edi
push 0
push esi
call fcn.0043bd8e
add esp, 0xc
mov eax, dword [edi + 0x10]
mov esi, dword [esp + 0x3c]
mov ecx, eax
shr ecx, 0x17
and cl, 1
bt eax, 0x19
movzx eax, cl
push 2
pop ecx
mov edx, dword [esp + 4]
cmovb eax, ecx
lea ecx, [esp + 0xd0]
push eax
push dword [esp + 0x44]
push esi
push 0x421f82
push fcn.00421ba8
call fcn.004406d5
add esp, 0x14
mov ecx, dword [esp + 0x38]
mov edx, esi
call fcn.004b2152
jmp 0x43e8de
mov ecx, dword [esp + 4]
jmp 0x43deb0
mov eax, dword [esp + 0x70]
add ebx, 0xc
shl eax, 4
test eax, eax
je 0x43df94
cmp dword [ebx - 0xc], 0
jne 0x43e061
mov esi, dword [ebx - 4]
mov edi, dword [ebx]
mov ecx, dword [ebp + 0x14]
mov edx, esi
push edi
mov dword [esp + 0x74], eax
call fcn.00424b02
pop ecx
test al, al
mov eax, dword [esp + 0x70]
je 0x43e8fe
mov esi, dword [ebp + 0x14]
add ebx, 0x10
add eax, 0xfffffff0
jmp 0x43e032
mov eax, esi
or eax, ebx
je 0x43ec41
mov eax, dword [esp + 0x18]
mov edi, dword [eax + 0x1c]
push ebx
push esi
push 0
push edi
call fcn.004f2904
add esp, 0x10
mov ecx, dword [esp + 0xc]
or edx, eax
je 0x43e0c2
test esi, esi
je 0x43ec4b
mov eax, edi
xor edx, edx
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
div esi
cmp edi, 1
mov dword [esp + 0x10], edx
jne 0x43e3d9
push 2
pop ebx
mov esi, str.asere
jmp 0x43e3f1
mov eax, dword [ecx + 0x10]
mov edi, ecx
or eax, dword [ecx + 0x14]
je 0x43e174
mov ecx, dword [esp + 0x18]
mov eax, dword [edi + 0x1c]
mov esi, dword [ecx + 0x1c]
cmp dword [edi + 0x18], esi
sbb eax, 0
jae 0x43e17b
mov eax, dword [ecx + 0x18]
shl esi, 4
mov ecx, dword [eax + esi - 0xc]
mov edx, dword [eax + esi - 8]
call fcn.00421362
mov ecx, eax
push 0x50396c
push 0x23
push str.unexpected_invalid_UTF_8_code_point
call fcn.0042138c
add esp, 0xc
mov edi, eax
mov esi, edx
sub esp, 4
mov ebx, dword [esp + 4]
lea ecx, [esp + 0x2c]
mov edx, ebx
push 0
push dword [ebp + 0x14]
call fcn.0043bd8e
add esp, 0xc
mov eax, dword [ebx + 0x10]
mov ecx, eax
shr ecx, 0x17
and cl, 1
bt eax, 0x19
movzx eax, cl
push 2
pop ecx
mov edx, edi
mov edi, dword [esp + 0xc]
cmovb eax, ecx
lea ecx, [esp + 0xd0]
push eax
push dword [esp + 0x34]
push dword [esp + 0x34]
push 0x4228de
push fcn.00422633
push edi
push esi
call fcn.0043fae2
add esp, 0x1c
jmp 0x43e459
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 0x1c]
mov eax, dword [edi + 0x20]
or eax, dword [edi + 0x24]
je 0x43e376
mov ecx, dword [edi + 0x28]
mov ebx, dword [edi + 0x2c]
mov eax, 0
cmp esi, ecx
sbb eax, ebx
jae 0x43e478
sub esp, 4
mov edi, dword [esp + 4]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x2c]
mov edx, edi
push 0
push dword [ebp + 0x14]
call fcn.0043bd8e
add esp, 0xc
mov eax, dword [edi + 0x10]
mov edi, dword [esp + 0xc]
mov ecx, eax
shr ecx, 0x17
and cl, 1
bt eax, 0x19
movzx eax, cl
push 2
pop ecx
cmovb eax, ecx
lea ecx, [esp + 0xd0]
mov edx, edi
push eax
push dword [esp + 0x34]
push dword [esp + 0x34]
push esi
push ebx
push dword [esp + 0x18]
push 0x4228de
push fcn.00422633
call fcn.0043fc55
add esp, 0x20
jmp 0x43e459
mov eax, dword [esp + 0x80]
movq xmm0, qword [esp + 0x78]
mov dword [esp + 0x90], eax
mov eax, dword [esp]
movq qword [esp + 0x88], xmm0
mov eax, dword [eax + 0x10]
mov ecx, eax
shr ecx, 0x17
and cl, 1
bt eax, 0x19
movzx eax, cl
push 2
pop ecx
mov edx, dword [esp + 4]
cmovb eax, ecx
lea ecx, [esp + 0xd0]
push eax
lea eax, [esp + 0x8c]
push eax
push 0x502f50
call fcn.00440282
add esp, 0xc
jmp 0x43de9a
sub esp, 4
lea ecx, [esp + 0x3c]
mov edx, esi
push 0
push dword [ebp + 0x14]
call fcn.0043bd8e
add esp, 0xc
mov eax, esi
mov esi, dword [esp + 0x3c]
mov eax, dword [eax + 0x10]
mov ecx, eax
shr ecx, 0x17
and cl, 1
bt eax, 0x19
movzx eax, cl
push 2
pop ecx
cmovb eax, ecx
lea ecx, [esp + 0xd0]
mov edx, esi
push eax
push dword [esp + 0x44]
call fcn.0043c378
pop eax
pop ecx
jmp 0x43de8f
lea ecx, [esp + 0x28]
mov dword [esp + 8], edx
push dword [esp + 0x40]
call fcn.004e3f90
pop eax
mov ebx, dword [esp + 0x2c]
lea esi, [esp + 0x78]
mov ecx, esi
mov edx, ebx
push dword [esp + 0x30]
call fcn.004403b1
pop eax
mov eax, dword [esp]
mov eax, dword [eax + 0x10]
mov ecx, eax
shr ecx, 0x17
and cl, 1
bt eax, 0x19
movzx eax, cl
push 2
pop ecx
mov edx, dword [esp + 4]
cmovb eax, ecx
lea ecx, [esp + 0xd0]
push eax
push esi
push 0x502f50
call fcn.00440282
add esp, 0xc
mov ecx, dword [esp + 0x28]
mov edx, ebx
call fcn.00450a23
mov edx, dword [esp + 8]
mov ecx, edi
jmp 0x43de95
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x70]
add eax, 0xc
shl ecx, 4
test ecx, ecx
je 0x43d922
cmp dword [eax - 0xc], 0
jne 0x43e36b
mov esi, dword [eax - 4]
mov dword [esp + 0x70], ecx
mov edi, dword [eax]
mov ecx, dword [ebp + 0x14]
mov edx, esi
push edi
mov dword [esp + 0x20], eax
call fcn.00424b02
mov ecx, dword [esp + 0x74]
add esp, 4
test al, al
mov eax, dword [esp + 0x1c]
je 0x43eae4
mov esi, dword [ebp + 0x14]
add eax, 0x10
add ecx, 0xfffffff0
jmp 0x43e332
test esi, esi
jne 0x43e478
sub esp, 4
mov esi, dword [esp + 4]
lea ecx, [esp + 0x2c]
mov edx, esi
push 0
push dword [ebp + 0x14]
call fcn.0043bd8e
add esp, 0xc
mov eax, dword [esi + 0x10]
mov ecx, eax
shr ecx, 0x17
and cl, 1
bt eax, 0x19
movzx eax, cl
push 2
pop ecx
cmovb eax, ecx
lea ecx, [esp + 0xd0]
mov edx, edi
push eax
push dword [esp + 0x34]
push dword [esp + 0x34]
push 0x4228de
push fcn.00422633
call fcn.0043f30e
add esp, 0x14
jmp 0x43e459
xor ebx, ebx
cmp edx, 1
mov esi, 0x503966
mov eax, str.asere
sete bl
cmove esi, eax
xor ebx, 3
sub esp, 4
mov edi, dword [esp + 4]
lea ecx, [esp + 0x2c]
mov edx, edi
push 0
push dword [ebp + 0x14]
call fcn.0043bd8e
add esp, 0xc
mov eax, dword [edi + 0x10]
mov ecx, eax
shr ecx, 0x17
and cl, 1
bt eax, 0x19
movzx eax, cl
push 2
pop ecx
mov edi, dword [esp + 0xc]
cmovb eax, ecx
lea ecx, [esp + 0xd0]
mov edx, edi
push eax
push dword [esp + 0x34]
push dword [esp + 0x34]
push ebx
push esi
push dword [esp + 0x24]
push dword [esp + 0x1c]
push dword [esp + 0x24]
push 0x4228de
push fcn.00422633
call fcn.0043f913
add esp, 0x28
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
call fcn.004b2152
mov eax, dword [esp + 0xd0]
cmp eax, 0x80000000
jne 0x43eb5f
mov ecx, dword [esp + 0x18]
mov esi, dword [ebp + 0x14]
mov eax, dword [ecx + 4]
cmp dword [ecx], 2
sbb eax, 0
jb 0x43e50e
test byte [edi + 0xec], 2
jne 0x43e50e
sub esp, 4
mov edi, dword [esp + 4]
lea ecx, [esp + 0x2c]
mov edx, edi
push 0
push esi
call fcn.0043bd8e
add esp, 0xc
mov eax, dword [edi + 0x10]
mov edi, dword [esp + 0xc]
mov ecx, eax
shr ecx, 0x17
and cl, 1
bt eax, 0x19
movzx eax, cl
push 2
pop ecx
cmovb eax, ecx
lea ecx, [esp + 0xd0]
mov edx, edi
push eax
push dword [esp + 0x34]
push dword [esp + 0x34]
push 0x4228de
push fcn.00422633
call fcn.004406d5
add esp, 0x14
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
call fcn.004b2152
mov eax, dword [esp + 0xd0]
cmp eax, 0x80000000
jne 0x43eb5f
mov eax, dword [esp + 0x18]
mov ecx, dword [edi + 0x6c]
mov ebx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [edi + 0x74]
shl eax, 4
mov dword [esp + 0xbc], ecx
add eax, ebx
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0xec]
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0xd4]
mov dword [esp + 0xb4], eax
mov eax, dword [edi + 0xd8]
mov dword [esp + 0x94], eax
mov eax, dword [edi + 0x68]
mov dword [esp + 0x70], eax
add eax, 8
mov dword [esp + 0xc0], eax
mov eax, dword [edi + 0x70]
mov dword [esp + 0x84], eax
add eax, 8
mov dword [esp + 0xb8], eax
cmp ebx, dword [esp + 0x20]
je 0x43e8f5
mov eax, dword [esp]
mov dword [esp + 8], ebx
test byte [eax + 0x12], 1
je 0x43e5a9
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
call fcn.00421362
test eax, eax
je 0x43ea13
push edi
call fcn.00422a2b
pop ecx
test eax, eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
je 0x43e662
mov eax, dword [esp + 8]
lea ecx, [esp + 0x88]
mov edx, dword [eax + 4]
push dword [eax + 8]
call fcn.004e3f90
pop eax
bt dword [esp + 0x24], 0x10
jb 0x43e609
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x90]
mov dword [esp + 4], ecx
push dword [esp + 0x14]
push dword [esp + 0x14]
call fcn.004238ee
pop ecx
pop edx
test al, al
jne 0x43e64b
jmp 0x43e774
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x90]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x10]
shl edi, 3
test edi, edi
je 0x43e774
mov ecx, dword [eax]
mov edx, dword [eax + 4]
lea ebx, [eax + 8]
push esi
push dword [esp + 8]
call fcn.0043fe3d
pop ecx
pop edx
add edi, 0xfffffff8
test al, al
mov eax, ebx
je 0x43e626
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 4]
call fcn.00450a23
mov esi, dword [ebp + 0x14]
mov edi, dword [esp + 0xc]
test byte [esp + 0x24], 4
mov eax, dword [esp + 8]
jne 0x43e695
cmp dword [eax + 8], 0
jne 0x43e695
mov edx, dword [esp + 0xb4]
mov ecx, esi
push dword [esp + 0x94]
call fcn.00424b02
pop ecx
test al, al
mov eax, dword [esp + 8]
jne 0x43eb06
cmp dword [esp + 0x70], 0
je 0x43e70e
mov ecx, dword [esp + 0x1c]
mov edx, dword [eax + 4]
lea ebx, [esp + 0x28]
mov esi, dword [ecx + 8]
mov ecx, ebx
dec esi
and esi, 0xfffffff8
add esi, dword [esp + 0xc0]
push dword [eax + 8]
call fcn.004e3f90
pop eax
lea edi, [esp + 0x78]
mov edx, ebx
mov ecx, edi
call fcn.0042b5d9
push edi
push esi
lea eax, [esp + 0x90]
push eax
mov eax, dword [esp + 0x28]
call dword [eax + 0x14]
add esp, 0xc
cmp dword [esp + 0x88], 0x80000000
jne 0x43e9b0
mov edx, dword [esp + 0x8c]
mov ecx, 0x80000000
call fcn.00450a23
mov esi, dword [ebp + 0x14]
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 8]
cmp dword [esp + 0x84], 0
lea ebx, [eax + 0x10]
je 0x43e57b
mov ecx, dword [esp + 0xbc]
mov edx, eax
mov eax, dword [ecx + 8]
dec eax
and eax, 0xfffffff8
add eax, dword [esp + 0xb8]
push dword [edx + 8]
push dword [edx + 4]
push eax
lea eax, [esp + 0x34]
push eax
call dword [ecx + 0x14]
add esp, 0x10
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
cmp edi, 0x80000000
jne 0x43ea66
mov ecx, 0x80000000
mov edx, esi
call fcn.00450a23
mov esi, dword [ebp + 0x14]
mov edi, dword [esp + 0xc]
jmp 0x43e57b
mov eax, dword [esp + 0x90]
movq xmm0, qword [esp + 0x88]
mov dword [esp + 0x80], eax
movq qword [esp + 0x78], xmm0
sub esp, 4
mov esi, dword [esp + 4]
lea ecx, [esp + 0x2c]
mov edx, esi
push 0
push dword [ebp + 0x14]
call fcn.0043bd8e
add esp, 0xc
mov eax, dword [esi + 0x10]
mov ecx, eax
shr ecx, 0x17
and cl, 1
bt eax, 0x19
movzx eax, cl
push 2
pop ecx
cmovb eax, ecx
lea ecx, [esp + 0xd0]
lea edx, [esp + 0x78]
push eax
push dword [esp + 0x34]
push dword [esp + 0x34]
push 0x4228de
push fcn.00422633
mov edi, dword [esp + 0x20]
push edi
push dword [esp + 0x2c]
push dword [esp + 0x2c]
call fcn.0043fe8b
add esp, 0x20
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
call fcn.004b2152
mov eax, dword [esp + 0xd0]
mov esi, dword [esp + 0x18]
cmp eax, 0x80000000
jne 0x43eb5f
push edi
call fcn.00422922
pop ecx
test eax, eax
je 0x43d55a
mov ecx, edx
mov ebx, edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], edx
shl ecx, 4
add ecx, eax
mov dword [esp + 0x10], ecx
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x24], ecx
mov ecx, dword [esi + 0x1c]
shl ecx, 4
mov dword [esp + 0x20], ecx
mov ecx, eax
cmp ecx, dword [esp + 0x10]
je 0x43e90f
mov eax, ecx
add ecx, 0x10
mov edi, dword [eax]
test edi, edi
je 0x43e850
mov esi, dword [eax + 4]
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x18], ecx
mov dword [esp + 4], esi
mov esi, dword [esp + 0x24]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
test ebx, ebx
je 0x43e8b9
mov ecx, esi
mov edx, edi
push dword [esp + 4]
call fcn.004403bf
pop ecx
test al, al
je 0x43e8b1
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 8]
push dword [esp + 0xc]
call fcn.00424b02
pop ecx
test al, al
je 0x43e8c3
add esi, 0x10
add ebx, 0xfffffff0
jmp 0x43e886
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x43e850
sub esp, 4
mov edx, dword [esp + 4]
lea ecx, [esp + 0xd4]
push 0
push dword [ebp + 0x14]
call fcn.004403db
add esp, 0xc
mov eax, dword [esp + 0xd0]
cmp eax, 0x80000000
je 0x43d55a
jmp 0x43eb5f
mov esi, dword [esp + 0x18]
jmp 0x43e819
mov edx, dword [esp]
lea ecx, [esp + 0xd0]
push edi
push esi
jmp 0x43df76
mov eax, dword [esp + 0x1c]
shl ebx, 4
add eax, 0xc
test ebx, ebx
je 0x43d55a
cmp dword [eax - 0xc], 0
jne 0x43e94c
mov esi, dword [eax - 4]
mov edi, dword [eax]
mov ecx, dword [ebp + 0x14]
mov edx, esi
push edi
mov dword [esp + 0x18], ebx
mov ebx, eax
call fcn.00424b02
pop ecx
test al, al
mov eax, ebx
mov ebx, dword [esp + 0x14]
je 0x43eaf5
add eax, 0x10
add ebx, 0xfffffff0
jmp 0x43e919
sub esp, 4
lea ecx, [esp + 0x3c]
mov edx, esi
push 0
push dword [ebp + 0x14]
call fcn.0043bd8e
add esp, 0xc
mov eax, esi
mov esi, dword [esp + 0x3c]
mov eax, dword [eax + 0x10]
mov ecx, eax
shr ecx, 0x17
and cl, 1
bt eax, 0x19
movzx eax, cl
push 2
pop ecx
mov edx, dword [esp + 4]
cmovb eax, ecx
lea ecx, [esp + 0xd0]
push eax
push dword [esp + 0x44]
push esi
push 0x421f82
push fcn.00421ba8
call fcn.0043f30e
add esp, 0x14
jmp 0x43de8f
mov eax, dword [esp + 0x90]
movq xmm0, qword [esp + 0x88]
mov dword [esp + 0x1e8], eax
mov eax, dword [esp]
movq qword [esp + 0x1e0], xmm0
mov eax, dword [eax + 0x10]
mov ecx, eax
shr ecx, 0x17
and cl, 1
bt eax, 0x19
movzx eax, cl
push 2
pop ecx
mov edi, dword [esp + 0xc]
cmovb eax, ecx
lea ecx, [esp + 0xd0]
mov edx, edi
push eax
lea eax, [esp + 0x1e4]
push eax
push 0x502fcc
call fcn.00440282
add esp, 0xc
jmp 0x43e803
sub esp, 4
mov edi, dword [esp + 4]
lea ecx, [esp + 0x2c]
mov edx, edi
push 0
push esi
call fcn.0043bd8e
add esp, 0xc
mov eax, dword [edi + 0x10]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0xc]
mov ecx, eax
shr ecx, 0x17
and cl, 1
bt eax, 0x19
movzx eax, cl
push 2
pop ecx
cmovb eax, ecx
lea ecx, [esp + 0xd0]
mov edx, esi
push eax
push dword [esp + 0x34]
call fcn.0043c378
pop eax
pop ecx
mov ecx, dword [esp + 0x28]
jmp 0x43eadd
lea ecx, [esp + 0x78]
mov edx, esi
push dword [esp + 0x30]
call fcn.004e3f90
pop eax
mov edx, dword [esp + 0x7c]
lea ecx, [esp + 0x88]
push dword [esp + 0x80]
call fcn.004403b1
pop eax
mov eax, dword [esp]
mov eax, dword [eax + 0x10]
mov ecx, eax
shr ecx, 0x17
and cl, 1
bt eax, 0x19
movzx eax, cl
push 2
pop ecx
mov ebx, dword [esp + 0xc]
cmovb eax, ecx
lea ecx, [esp + 0xd0]
mov edx, ebx
push eax
lea eax, [esp + 0x8c]
push eax
push 0x502fcc
call fcn.00440282
add esp, 0xc
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
call fcn.00450a23
mov ecx, edi
mov edi, ebx
mov edx, esi
jmp 0x43e7fe
mov edx, dword [esp]
lea ecx, [esp + 0xd0]
push edi
push esi
jmp 0x43d904
mov edx, dword [esp]
lea ecx, [esp + 0xd0]
push edi
push esi
jmp 0x43e8d3
sub esp, 4
mov edx, dword [esp + 4]
lea ecx, [esp + 0x2c]
push 0
push esi
mov esi, edx
call fcn.0043bd8e
add esp, 0xc
mov eax, dword [esi + 0x10]
mov ecx, eax
shr ecx, 0x17
and cl, 1
bt eax, 0x19
movzx eax, cl
push 2
pop ecx
cmovb eax, ecx
lea ecx, [esp + 0xd0]
mov edx, edi
push eax
push dword [esp + 0x34]
push dword [esp + 0x34]
push 0x4228de
push fcn.00422633
call fcn.0043f30e
add esp, 0x14
jmp 0x43e7f6
movsd xmm0, qword [esp + 0xe4]
movsd xmm2, qword [esp + 0xd4]
movsd xmm1, qword [esp + 0xdc]
movsd qword [esp + 0x68], xmm0
movsd qword [esp + 0x60], xmm1
movsd qword [esp + 0x58], xmm2
jmp 0x43ebfb
mov edi, dword [ebp + 0x14]
mov ebx, dword [esp]
jmp 0x43ebbc
sub esp, 4
mov ebx, dword [esp + 4]
lea esi, [esp + 0x58]
mov ecx, esi
mov edx, ebx
push 0
mov edi, dword [ebp + 0x14]
push edi
call fcn.004403db
add esp, 0xc
mov eax, dword [esi]
cmp eax, 0x80000000
jne 0x43ebfb
lea esi, [esp + 0xd0]
mov edx, ebx
mov ecx, esi
push 0
push 4
call fcn.0044080a
pop eax
pop ecx
mov ecx, dword [edi + 0x24]
mov edx, dword [edi + 0x28]
call fcn.00450a23
mov eax, dword [esi + 8]
movsd xmm0, qword [esi]
mov ecx, dword [esp + 0x74]
mov dword [edi + 0x2c], eax
movsd qword [edi + 0x24], xmm0
mov dword [ecx], 0x80000000
jmp 0x43cc5a
movsd xmm0, qword [esp + 0x68]
mov ecx, dword [esp + 0x74]
movsd xmm1, qword [esp + 0x60]
movsd qword [ecx + 0x14], xmm0
movsd xmm0, qword [esp + 0x58]
jmp 0x43cc4e
mov edx, dword [esp]
lea ecx, [esp + 0xd0]
push dword [ebp + 0x14]
push esi
push edi
call fcn.0043f443
add esp, 0xc
jmp 0x43d341
mov ecx, 0x503924
call fcn.00444f90
mov ecx, 0x503944
call fcn.0044a590
mov ecx, 0x503954
call fcn.0044a590