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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x478
cmp dword [ebp + 8], 0
mov dword [esp + 0x30], edx
mov dword [esp + 0xc], ecx
sete byte [esp + 0x26]
je 0x42ee75
mov eax, dword [esp + 0x30]
mov edi, dword [eax + 0x38]
mov esi, dword [eax + 0x30]
mov eax, dword [ebp + 8]
add eax, 0x20
shl edi, 5
mov dword [esp + 4], eax
test edi, edi
je 0x42ee75
mov edx, dword [esi]
mov ecx, dword [esp + 0xc]
push dword [esi + 0xc]
push dword [esi + 8]
push dword [esi + 4]
call fcn.0042d6f1
add esp, 0xc
test eax, eax
je 0x42ee6d
lea ebx, [esp + 0x150]
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x2fc], edx
lea edx, [esp + 0x2f8]
mov ecx, ebx
call fcn.004303fd
mov edx, dword [esp + 4]
lea ecx, [esp + 0x1e0]
push ebx
push dword [esi + 0xc]
push dword [esi + 8]
push dword [esi + 4]
push dword [esi]
call fcn.0042e952
add esp, 0x14
lea ecx, [esp + 0x1e0]
call fcn.0043055e
add esi, 0x20
add edi, 0xffffffe0
jmp 0x42ee00
lea esi, [esp + 0x460]
mov ecx, esi
call fcn.0042e27a
mov edi, dword [esp + 0xc]
mov edx, dword [esi]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
mov esi, dword [esi + 4]
mov dword [esp + 0xb0], 0xa38ef0
and dword [esp + 0xb4], 0
and dword [esp + 0xb8], 0
and dword [esp + 0xbc], 0
mov dword [esp + 0xc0], edx
mov edx, dword [edi + 0x40]
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], ecx
mov ebx, dword [edi + 0x48]
mov ecx, dword [edi + 0x44]
mov esi, dword [edi + 0x4c]
mov dword [esp + 0xcc], eax
mov eax, edx
mov dword [esp + 0x94], ecx
or ecx, esi
mov dword [esp + 0x98], ebx
mov dword [esp + 0xec], edx
mov dword [esp + 0xe8], esi
or eax, ebx
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe0], eax
or eax, ecx
je 0x42ef53
mov ecx, edi
push esi
push dword [esp + 0x9c]
push dword [esp + 0x9c]
call fcn.0042d6f1
add esp, 0xc
mov ecx, eax
push 0x7fc004
call fcn.0042d72b
pop ecx
lea esi, [esp + 0x150]
lea ecx, [esp + 0x3e8]
mov dword [esi], eax
mov dword [esi + 4], edx
mov edx, esi
call fcn.004303fd
jmp 0x42ef5b
mov byte [esp + 0x42f], 2
mov ebx, dword [esp + 0x30]
mov ecx, dword [ebx + 0xc]
mov esi, dword [ebx]
mov eax, dword [ebx + 4]
mov edx, dword [ebx + 8]
mov dword [esp + 0x10], eax
mov dword [esp + 4], ecx
or eax, ecx
mov ecx, esi
mov dword [esp + 8], esi
mov esi, dword [edi + 0x24]
mov dword [esp + 0x14], edx
or ecx, edx
mov edx, dword [edi + 0x20]
or ecx, eax
mov eax, dword [edi + 0x2c]
mov ecx, dword [edi + 0x28]
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], eax
je 0x42f047
mov eax, dword [ebx + 0x1c]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 4]
mov edi, dword [ebx + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 8]
mov ecx, esi
xor edx, dword [esp + 0x40]
mov dword [esp + 0x18], edi
xor ecx, dword [esp + 0x3c]
xor eax, dword [esp + 0x38]
or ecx, eax
mov eax, dword [esp + 0x10]
xor eax, dword [esp + 0x34]
or edx, eax
or edx, ecx
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x20], ecx
mov ecx, dword [ebx + 0x14]
je 0x42f009
mov edx, dword [esp + 0x38]
mov edi, ecx
lea ecx, [esp + 0xb0]
push dword [esp + 0x40]
push dword [esp + 0x40]
push dword [esp + 0x3c]
call fcn.0042ecb2
mov ecx, edi
add esp, 0xc
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 4]
mov dword [edi + 0x28], esi
mov dword [edi + 0x20], edx
mov dword [edi + 0x24], ebx
mov dword [edi + 0x2c], eax
mov dword [edi + 0x34], ecx
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
mov dword [edi + 0x38], ecx
mov ecx, dword [esp + 0x1c]
mov dword [edi + 0x30], esi
mov esi, ebx
mov ebx, dword [esp + 0x30]
mov dword [edi + 0x3c], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x44], ecx
lea ecx, [edi + 0x20]
mov dword [esp + 0xac], eax
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], edx
mov dword [esp + 0xd4], ecx
lea ecx, [esp + 0x150]
call fcn.005fc239
lea esi, [esp + 0x450]
lea edx, [esp + 0x150]
mov ecx, esi
call fcn.0042e2be
mov eax, dword [esi + 8]
mov ecx, 0xa38ef0
mov dword [esp + 4], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 8], eax
lea eax, [esp + 0x60]
mov edx, dword [esi]
mov esi, dword [esi + 4]
mov dword [eax - 0x10], ecx
mov ecx, dword [esp + 8]
and dword [eax - 0xc], 0
and dword [eax - 8], 0
and dword [eax - 4], 0
mov dword [eax + 4], esi
mov dword [eax], edx
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 4]
mov dword [eax + 8], ecx
lea ecx, [esp + 0x150]
call fcn.005fc239
lea esi, [esp + 0x440]
lea edx, [esp + 0x150]
mov ecx, esi
call fcn.0042e2be
mov eax, dword [esi + 0xc]
mov ecx, 0xa38ef0
mov dword [esp + 4], eax
mov eax, dword [esi + 8]
mov dword [esp + 8], eax
lea eax, [esp + 0x80]
mov edx, dword [esi]
mov esi, dword [esi + 4]
mov dword [eax - 0x10], ecx
and dword [eax - 0xc], 0
and dword [eax - 8], 0
and dword [eax - 4], 0
mov dword [eax], edx
mov edx, dword [esp + 8]
mov dword [eax + 4], esi
mov esi, dword [esp + 4]
mov dword [eax + 8], edx
mov edx, dword [ebx + 0x38]
mov dword [eax + 0xc], esi
mov esi, dword [ebx + 0x30]
mov eax, dword [ebx + 0x34]
mov ebx, edi
shl edx, 5
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], esi
add edx, esi
mov edi, edx
mov dword [esp + 0x28], edx
cmp esi, edi
je 0x42fbe8
mov eax, dword [esi + 8]
mov edi, dword [esi + 4]
mov ecx, dword [esi + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esi]
mov ebx, edi
or ebx, ecx
mov edx, eax
or edx, dword [esp + 4]
or edx, ebx
lea edx, [esi + 0x20]
je 0x42fbde
mov dword [esp + 0xf4], edx
mov edx, dword [esp + 4]
mov dword [esp + 0x114], ecx
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], edi
lea ecx, [esp + 0xb0]
mov dword [esp + 0x110], edx
lea edx, [esp + 0x108]
movq xmm0, qword [esi + 0x10]
movsd xmm1, qword [esi + 0x18]
movsd qword [esp + 0x2b8], xmm1
movq qword [esp + 0x2b0], xmm0
call fcn.0042ec1a
lea ecx, [esp + 0x290]
call fcn.0042e27a
mov ecx, dword [esp + 0x29c]
mov edx, dword [esp + 0x290]
mov esi, dword [esp + 0x294]
mov eax, dword [esp + 0x298]
mov dword [esp + 0x150], 0xa38ef0
and dword [esp + 0x154], 0
and dword [esp + 0x158], 0
and dword [esp + 0x15c], 0
mov dword [esp + 0x164], esi
mov dword [esp + 0x160], edx
mov dword [esp + 0x16c], ecx
lea ecx, [esp + 0x2b0]
mov dword [esp + 0x168], eax
call fcn.0042db8c
mov edi, edx
mov esi, eax
mov dword [esp + 0x14], 0
shl edi, 4
mov ebx, dword [esp + 0xc]
test edi, edi
je 0x42f6f8
lea ecx, [esp + 0x150]
mov edx, esi
call fcn.0042e38f
test al, al
jne 0x430386
lea ecx, [esp + 0xb0]
mov edx, esi
mov dword [esp + 0x1c], edi
call fcn.0042ec1a
mov eax, dword [esp + 0x114]
mov ecx, ebx
mov edx, esi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x110]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x10c]
mov dword [esp + 0x10], eax
call fcn.0042ec65
test eax, eax
mov dword [esp + 4], esi
je 0x42f325
mov esi, dword [eax + 0x20]
mov ebx, dword [eax + 0x24]
mov ecx, dword [eax + 0x28]
mov edx, dword [eax + 0x2c]
mov edi, esi
mov dword [esp + 0x2c], ebx
or ebx, edx
or edi, ecx
or edi, ebx
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
je 0x42f305
xor esi, dword [esp + 8]
xor ecx, ebx
xor edx, edi
or ecx, esi
mov esi, dword [esp + 0x2c]
xor esi, dword [esp + 0x10]
or edx, esi
or edx, ecx
jne 0x42f305
mov ecx, dword [esp + 0x14]
cmp ecx, dword [eax + 0x30]
je 0x42f5ae
mov ecx, dword [esp + 8]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [eax + 0x28], ebx
mov dword [eax + 0x2c], edi
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], esi
mov dword [eax + 0x30], edx
jmp 0x42f5ae
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
push dword [esi + 0xc]
push dword [esi + 8]
push dword [esi + 4]
push dword [esi]
push dword [esp + 0x7c]
push dword [esp + 0x7c]
call fcn.0042d7a1
add esp, 0x18
mov edi, esi
lea ebx, [esp + 0x50]
mov esi, edx
mov edx, eax
mov ecx, ebx
push edi
push esi
call fcn.0042e4e9
pop ecx
pop edx
test eax, eax
je 0x42f40d
mov edx, dword [esp + 0x50]
mov ecx, ebx
mov edi, eax
sub edx, eax
sar edx, 5
call fcn.0057d973
mov eax, dword [edi - 0x20]
mov ecx, dword [edi - 0x1c]
or ecx, dword [edi - 0x14]
or eax, dword [edi - 0x18]
or eax, ecx
je 0x42f40d
add edi, 0xfffffff0
movq xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
movq qword [esp + 0x2f8], xmm0
movsd qword [esp + 0x300], xmm1
cmp dword [esp + 0x2f8], 0
je 0x42f415
movq xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [ebp + 8]
lea eax, [esp + 0x340]
movsd qword [esp + 0x348], xmm1
movq qword [esp + 0x340], xmm0
push eax
mov eax, dword [esp + 8]
push dword [eax + 0xc]
push dword [eax + 8]
push dword [eax + 4]
push dword [eax]
push dword [esp + 0x28]
push dword [esp + 0x30]
push dword [esp + 0x3c]
push dword [esp + 0x30]
push dword [esp + 0x2c]
call fcn.0043057c
add esp, 0x28
jmp 0x42f5ae
and dword [esp + 0x2f8], 0
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x84]
mov eax, dword [ecx]
mov esi, dword [ecx + 4]
mov edi, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x1ec], ebx
mov dword [esp + 0x1e8], edi
mov dword [esp + 0x1e4], esi
mov dword [esp + 0x1e0], eax
push ebx
push edi
push esi
push eax
push dword [esp + 0x9c]
push dword [esp + 0x9c]
call fcn.0042d7a1
add esp, 0x18
mov ebx, edx
mov esi, eax
mov edx, eax
lea eax, [esp + 0x1e0]
lea ecx, [esp + 0x70]
push eax
push ebx
call fcn.0042e5c7
pop ecx
pop edx
test eax, eax
je 0x42f4aa
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov esi, dword [esp + 0x20]
mov dword [eax - 0x14], edx
mov edx, dword [esp + 0x18]
mov dword [eax - 0x18], ecx
mov dword [eax - 0x10], esi
mov dword [eax - 0xc], edx
add eax, 0xfffffff8
jmp 0x42f5a8
mov eax, dword [esp + 0x1ec]
mov edi, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0x1e8]
mov ecx, edi
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x1e0]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0xf8], eax
push ebx
mov dword [esp + 0x30], esi
push esi
call fcn.004c21d1
pop ecx
pop edx
mov cl, byte [edi + eax]
cmp dword [esp + 0x78], 0
mov esi, eax
jne 0x42f53e
mov eax, ecx
lea edi, [esp + 0x70]
and al, 1
je 0x42f542
mov byte [esp + 0x27], cl
mov ecx, edi
lea edx, [esp + 0x80]
call fcn.0063c0af
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
push ebx
push dword [esp + 0x30]
call fcn.004c21d1
mov cl, byte [esp + 0x2f]
add esp, 8
mov esi, eax
jmp 0x42f542
lea edi, [esp + 0x70]
movzx eax, cl
mov ecx, edi
mov edx, esi
push ebx
push dword [esp + 0x30]
push eax
call fcn.0047cb53
add esp, 0xc
neg esi
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x100]
imul eax, esi, 0x28
mov esi, dword [esp + 0xfc]
lea eax, [ecx + eax - 8]
mov dword [eax - 0x14], esi
mov dword [eax - 0x18], edx
mov esi, dword [esp + 0xf8]
mov edx, dword [esp + 0x104]
mov dword [eax - 0x1c], esi
mov dword [eax - 0x20], edx
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov dword [eax - 4], esi
mov dword [eax - 8], edx
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 8]
mov dword [eax - 0xc], esi
mov dword [eax - 0x10], edx
mov ecx, dword [esp + 0x14]
mov dword [eax], ecx
mov esi, dword [esp + 4]
mov ecx, dword [esp + 0x160]
mov edx, dword [esp + 0x164]
mov dword [esp + 0x3a0], esi
push esi
push dword [esp + 0x170]
push dword [esp + 0x170]
call fcn.0042e004
add esp, 0xc
mov edi, eax
mov ebx, edx
lea eax, [esp + 0x3a0]
mov ecx, dword [esp + 0x150]
mov edx, dword [esp + 0x154]
mov dword [esp + 0x2f8], eax
lea eax, [esp + 0x2f8]
mov dword [esp + 0x1e0], eax
lea eax, [esp + 0x150]
mov dword [esp + 0x1e4], eax
push 0x42ebe6
lea eax, [esp + 0x1e4]
push eax
push ebx
mov dword [esp + 0x14], edi
push edi
call fcn.004a4151
add esp, 0x10
mov edi, dword [esp + 0x150]
test eax, eax
je 0x42f644
test edi, edi
jne 0x42f6ab
mov eax, dword [esp + 0x3a0]
mov edx, dword [esp + 0x154]
mov ecx, edi
mov dword [esp + 0x10], eax
push ebx
push dword [esp + 0xc]
call fcn.004c21d1
pop ecx
pop edx
mov cl, byte [edi + eax]
cmp dword [esp + 0x158], 0
mov esi, eax
jne 0x42f679
mov eax, ecx
and al, 1
jne 0x42f6be
movzx eax, cl
lea ecx, [esp + 0x150]
mov edx, esi
push ebx
push dword [esp + 0xc]
push eax
call fcn.0047cb53
add esp, 0xc
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x10]
shl esi, 2
neg esi
mov dword [eax + esi - 4], ecx
mov esi, dword [esp + 4]
mov edi, dword [esp + 0x1c]
inc dword [esp + 0x14]
add esi, 0x10
add edi, 0xfffffff0
jmp 0x42f24d
mov byte [esp + 0x18], cl
lea ecx, [esp + 0x150]
lea edx, [esp + 0x160]
call fcn.0063c804
mov ecx, dword [esp + 0x150]
mov edx, dword [esp + 0x154]
push ebx
push dword [esp + 0xc]
call fcn.004c21d1
mov cl, byte [esp + 0x20]
add esp, 8
mov esi, eax
jmp 0x42f679
lea edi, [esp + 0x108]
mov ecx, ebx
mov edx, edi
call fcn.0042ec65
test eax, eax
je 0x42f7cd
mov ecx, dword [esp + 0x108]
mov ebx, dword [esp + 0x110]
mov edi, dword [esp + 0x10c]
mov edx, dword [esp + 0x114]
mov esi, eax
xor ecx, dword [esp + 0x4c]
xor ebx, dword [esp + 0x44]
xor edi, dword [esp + 0x48]
xor edx, dword [esp + 0xac]
or ebx, ecx
or edx, edi
or edx, ebx
jne 0x42f759
and dword [esi + 0x2c], 0
and dword [esi + 0x28], 0
and dword [esi + 0x24], 0
and dword [esi + 0x20], 0
add esi, 0x10
mov ecx, esi
call fcn.0042db8c
mov ebx, edx
mov edi, eax
shl ebx, 4
test ebx, ebx
je 0x42f7a2
lea ecx, [esp + 0x150]
mov edx, edi
call fcn.0042e38f
test al, al
jne 0x42f79a
mov edx, dword [edi]
lea ecx, [esp + 0xb0]
push dword [edi + 0xc]
push dword [edi + 8]
push dword [edi + 4]
call fcn.0042ecb2
add esp, 0xc
add edi, 0x10
add ebx, 0xfffffff0
jmp 0x42f76a
mov ecx, esi
call fcn.0042e20c
movq xmm0, qword [esp + 0x2b0]
movsd xmm1, qword [esp + 0x2b8]
mov ebx, dword [esp + 0xc]
movsd qword [esi + 8], xmm1
movq qword [esi], xmm0
jmp 0x42f9df
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
push dword [esp + 0x114]
push dword [esp + 0x114]
push dword [esp + 0x114]
push dword [esp + 0x114]
push dword [esp + 0x9c]
push dword [esp + 0x9c]
call fcn.0042d7a1
add esp, 0x18
mov esi, edx
lea ecx, [esp + 0x70]
mov edx, eax
push edi
push esi
call fcn.0042e5c7
pop ecx
pop edx
test eax, eax
je 0x42f887
mov esi, eax
mov eax, dword [esp + 0x70]
sub eax, esi
cdq
push 0x28
pop ecx
idiv ecx
lea ecx, [esp + 0x70]
mov edx, eax
call fcn.0057d973
mov edx, ebx
mov ebx, dword [esi - 0xc]
mov eax, dword [esi - 0x1c]
mov edi, dword [esi - 0x20]
mov ecx, dword [esi - 0x24]
mov dword [esp + 0x9c], ebx
mov ebx, dword [esi - 0x10]
mov dword [esp + 4], eax
mov eax, dword [esi - 0x28]
mov dword [esp + 0xa0], ebx
mov ebx, dword [esi - 0x14]
mov dword [esp + 0xa4], ebx
mov ebx, dword [esi - 0x18]
mov esi, dword [esi - 8]
mov dword [esp + 0xf0], esi
mov esi, dword [esp + 4]
mov dword [esp + 0xa8], ebx
mov ebx, edx
jmp 0x42f88f
xor eax, eax
xor ecx, ecx
xor edi, edi
xor esi, esi
or ecx, esi
or eax, edi
mov edx, dword [esp + 0x110]
mov esi, dword [esp + 0x108]
mov edi, dword [esp + 0x10c]
or eax, ecx
mov eax, dword [esp + 0x114]
mov dword [esp + 4], edx
mov dword [esp + 8], esi
je 0x42f942
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0xa4]
or ecx, dword [esp + 0xa0]
or edx, dword [esp + 0x9c]
or edx, ecx
je 0x42f942
movq xmm0, qword [esp + 0x2b0]
movsd xmm1, qword [esp + 0x2b8]
mov edx, dword [ebp + 8]
mov ecx, ebx
lea esi, [esp + 0x1e0]
movsd qword [esp + 0x1e8], xmm1
movq qword [esp + 0x1e0], xmm0
push esi
push eax
push dword [esp + 0xc]
push edi
push dword [esp + 0x18]
push dword [esp + 0x104]
push dword [esp + 0xb4]
push dword [esp + 0xbc]
push dword [esp + 0xc4]
push dword [esp + 0xcc]
jmp 0x42f9d7
mov edx, dword [esp + 4]
mov ecx, esi
mov esi, dword [esp + 0xac]
mov ebx, eax
xor ecx, dword [esp + 0x4c]
xor edx, dword [esp + 0x44]
xor ebx, esi
or edx, ecx
mov ecx, edi
xor ecx, dword [esp + 0x48]
or ebx, ecx
or ebx, edx
jne 0x42fa30
movq xmm0, qword [esp + 0x2b0]
movsd xmm1, qword [esp + 0x2b8]
movsd qword [esp + 0x1e8], xmm1
movq qword [esp + 0x1e0], xmm0
sub esp, 0x28
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0x34]
and dword [esp + 0xc], 0
and dword [esp + 8], 0
and dword [esp + 4], 0
and dword [esp], 0
lea eax, [esp + 0x208]
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x18], edx
mov edx, dword [ebp + 8]
mov dword [esp + 0x14], ecx
mov ecx, ebx
call fcn.0043057c
add esp, 0x28
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x154]
test eax, eax
je 0x42fa24
mov edx, dword [esp + 0x150]
lea ecx, [esp + 0x1e0]
push 0x10
push 4
push eax
call fcn.0047cd43
add esp, 0xc
mov ecx, dword [esp + 0x1e0]
mov edx, dword [esp + 0x1e4]
push dword [esp + 0x1e8]
call fcn.00402161
pop eax
mov esi, dword [esp + 0xf4]
jmp 0x42f149
mov ebx, dword [esp + 8]
mov esi, dword [esp + 4]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x1e4], edi
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x1e0], ebx
mov dword [esp + 0x1e8], esi
push eax
push esi
push edi
push ebx
push dword [esp + 0x7c]
push dword [esp + 0x7c]
call fcn.0042d7a1
add esp, 0x18
mov edi, edx
mov esi, eax
mov edx, eax
lea eax, [esp + 0x1e0]
lea ecx, [esp + 0x50]
push eax
push edi
call fcn.0042e4e9
pop ecx
pop edx
mov ebx, dword [esp + 0xc]
test eax, eax
je 0x42faed
movsd xmm0, qword [eax - 0x10]
movsd xmm1, qword [eax - 8]
movsd xmm2, qword [esp + 0x2b8]
mov edi, dword [esp + 0x28]
movsd qword [esp + 0x2f8], xmm0
movq xmm0, qword [esp + 0x2b0]
movsd qword [esp + 0x300], xmm1
movsd qword [eax - 8], xmm2
movq qword [eax - 0x10], xmm0
cmp dword [esp + 0x2f8], 0
je 0x42f9e3
lea ecx, [esp + 0x2f8]
call fcn.0042e20c
jmp 0x42f9e3
mov eax, dword [esp + 0x1ec]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1e8]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1e0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0x1c], eax
mov eax, esi
mov esi, dword [esp + 0x50]
mov ecx, esi
push edi
mov dword [esp + 8], eax
push eax
call fcn.004c21d1
pop ecx
pop edx
mov dl, byte [esi + eax]
cmp dword [esp + 0x58], 0
mov ebx, eax
jne 0x42fb77
mov esi, dword [esp + 4]
mov eax, edx
lea ecx, [esp + 0x50]
and al, 1
je 0x42fb7f
mov ebx, edx
lea ecx, [esp + 0x50]
lea edx, [esp + 0x60]
call fcn.0063c4fc
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
push edi
push esi
call fcn.004c21d1
mov edx, ebx
lea ecx, [esp + 0x58]
add esp, 8
mov ebx, eax
jmp 0x42fb7f
mov esi, dword [esp + 4]
lea ecx, [esp + 0x50]
movzx eax, dl
mov edx, ebx
push edi
push esi
push eax
call fcn.0047cb53
add esp, 0xc
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x10]
shl ebx, 5
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
mov ecx, eax
sub ecx, ebx
neg ebx
mov dword [ecx - 0x18], esi
mov esi, dword [esp + 8]
mov dword [ecx - 0x14], edx
mov dword [ecx - 0x1c], edi
mov dword [ecx - 0x20], esi
movq xmm0, qword [esp + 0x2b0]
movsd xmm1, qword [esp + 0x2b8]
movq qword [eax + ebx - 0x10], xmm0
mov ebx, dword [esp + 0xc]
movsd qword [ecx - 8], xmm1
jmp 0x42f9df
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 0x28]
mov esi, edx
sub edi, esi
add esi, 0x10
shr edi, 5
sub edi, 1
jb 0x42fc01
mov ecx, esi
call fcn.0042e20c
add esi, 0x20
jmp 0x42fbf0
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0xd8]
call fcn.0042e1f8
mov eax, dword [esp + 0x5c]
test eax, eax
mov dword [esp + 0x1e0], eax
jne 0x43039b
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x1e0], eax
test eax, eax
mov eax, dword [esp + 0x30]
jne 0x4303b3
mov esi, dword [eax + 0x20]
mov edx, dword [eax + 0x28]
mov ecx, dword [eax + 0x2c]
mov eax, dword [eax + 0x24]
mov edi, esi
mov dword [esp + 0x14], eax
or eax, ecx
mov dword [esp + 0x10], esi
mov dword [esp + 4], edx
mov esi, dword [ebx + 0x40]
mov dword [esp + 8], ecx
or edi, edx
mov edx, dword [ebx + 0x48]
or edi, eax
mov eax, dword [ebx + 0x4c]
mov ebx, dword [ebx + 0x44]
je 0x42fd54
mov edi, esi
mov ecx, ebx
or edi, edx
or ecx, eax
or ecx, edi
mov ecx, dword [ebp + 8]
je 0x42fca1
xor esi, dword [esp + 0x10]
xor edx, dword [esp + 4]
xor ebx, dword [esp + 0x14]
xor eax, dword [esp + 8]
or edx, esi
or eax, ebx
or eax, edx
mov al, 1
je 0x42fe42
mov ebx, dword [esp + 0xc]
test ecx, ecx
je 0x42fe22
push 0x12
pop ecx
mov eax, dword [ebp + 8]
lea edi, [esp + 0x2b0]
lea esi, [esp + 0x3e8]
lea edx, [esp + 0x2a0]
rep movsd dword es:[edi], dword [esi]
lea ecx, [eax + 0x20]
mov eax, dword [esp + 8]
mov dword [edx + 0xc], eax
mov eax, dword [esp + 4]
mov dword [edx + 8], eax
mov eax, dword [esp + 0x14]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x10]
mov dword [edx], eax
call fcn.0042e42f
test al, al
jne 0x42fd7d
mov edx, dword [esp + 0x2a0]
mov ecx, ebx
push dword [esp + 0x2ac]
push dword [esp + 0x2ac]
push dword [esp + 0x2ac]
call fcn.0042d6f1
add esp, 0xc
test eax, eax
je 0x42fd88
lea esi, [esp + 0x398]
lea edi, [esp + 0x2f8]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ecx, edi
mov edx, esi
call fcn.004303fd
mov al, byte [edi + 0x47]
mov esi, edi
push 0x47
pop ecx
lea edi, [esp + 0x108]
cmp al, 3
rep movsb byte es:[edi], byte [esi]
mov cl, 2
jne 0x42fd8a
jmp 0x42fd9f
or esi, edx
or ebx, eax
or ebx, esi
je 0x42fd81
cmp dword [ebp + 8], 0
mov ebx, dword [esp + 0xc]
je 0x42fe22
push 0x12
pop ecx
lea edi, [esp + 0x2b0]
lea esi, [esp + 0x3e8]
rep movsd dword es:[edi], dword [esi]
mov cl, 2
jmp 0x42fd9f
mov al, 1
jmp 0x42fe42
mov al, 2
push 0x47
pop ecx
lea edi, [esp + 0x3a0]
lea esi, [esp + 0x108]
rep movsb byte es:[edi], byte [esi]
mov ecx, eax
mov byte [esp + 0x1c], cl
push 0x12
pop ecx
lea eax, [esp + 0x150]
lea esi, [esp + 0x2b0]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x198]
push 0x47
pop ecx
lea esi, [esp + 0x3a0]
rep movsb byte es:[edi], byte [esi]
push 0x8f
push eax
lea eax, [esp + 0x1e8]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edi, dword [ebp + 8]
cmp byte [edi + 0xef], 3
lea esi, [edi + 0x60]
je 0x42fe02
mov ecx, esi
call fcn.0043055e
lea ecx, [edi + 0xa8]
call fcn.0043055e
push 0x8f
lea eax, [esp + 0x1e4]
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov al, byte [esp + 0x1c]
mov byte [edi + 0xef], al
mov eax, dword [esp + 0x10]
mov dword [ebx + 0x40], eax
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x44], eax
mov eax, dword [esp + 4]
mov dword [ebx + 0x48], eax
mov eax, dword [esp + 8]
mov dword [ebx + 0x4c], eax
mov al, byte [esp + 0x26]
mov ecx, dword [esp + 0xbc]
mov byte [esp + 0x2c], al
test ecx, ecx
mov dword [esp + 0x20], ecx
je 0x4301fc
lea esi, [esp + 0x430]
mov ecx, esi
call fcn.0042e27a
mov edx, dword [esi]
movsd xmm1, qword [esp + 0xc0]
lea edi, [esp + 0x2b0]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov esi, dword [esi + 4]
movsd xmm0, qword [esp + 0xc8]
movsd xmm2, qword [esp + 0xb0]
mov dword [edi], 0xa38ef0
and dword [edi + 4], 0
and dword [edi + 8], 0
and dword [edi + 0xc], 0
mov dword [edi + 0x10], edx
lea edx, [esp + 0x1e0]
mov dword [edi + 0x14], esi
mov dword [edi + 0x1c], ecx
lea ecx, [esp + 0x150]
mov dword [edi + 0x18], eax
movsd qword [edx + 0x10], xmm1
movsd xmm1, qword [esp + 0xb8]
movsd qword [edx + 0x18], xmm0
movsd qword [edx], xmm2
movsd qword [edx + 8], xmm1
call fcn.00430783
lea ecx, [esp + 0x280]
lea edx, [esp + 0x150]
call fcn.0042e359
mov eax, dword [esp + 0x280]
mov ebx, dword [esp + 0x284]
mov edi, dword [esp + 0x28c]
mov esi, dword [esp + 0x288]
mov ecx, ebx
mov edx, eax
or ecx, edi
or edx, esi
or edx, ecx
je 0x42ff35
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x2b0]
push edi
push esi
push ebx
push eax
call fcn.004307f7
add esp, 0x10
jmp 0x42fee1
lea esi, [esp + 0x150]
mov ecx, esi
call fcn.0042e265
movsd xmm1, qword [esp + 0x2c0]
movq xmm0, qword [esp + 0x2c8]
movsd xmm2, qword [esp + 0x2b0]
lea ecx, [esp + 0x2f8]
lea edx, [esp + 0x150]
movsd qword [esi + 0x10], xmm1
movsd xmm1, qword [esp + 0x2b8]
movq qword [esi + 0x18], xmm0
movsd qword [esi], xmm2
movsd qword [esi + 8], xmm1
call fcn.00430783
mov eax, dword [ebp + 8]
add eax, 0x40
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x270]
lea edx, [esp + 0x2f8]
call fcn.0042e359
mov esi, dword [esp + 0x270]
mov ebx, dword [esp + 0x274]
mov edi, dword [esp + 0x27c]
mov eax, dword [esp + 0x278]
mov ecx, ebx
mov edx, esi
or ecx, edi
or edx, eax
or edx, ecx
je 0x4301f0
mov dword [esp + 0x108], esi
mov dword [esp + 4], esi
mov esi, dword [esp + 0xc]
mov dword [esp + 0x110], eax
mov dword [esp + 0x10c], ebx
mov dword [esp + 0x114], edi
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
push edi
push eax
push ebx
push dword [esp + 0x10]
push dword [esi + 0x1c]
push dword [esi + 0x18]
call fcn.0042d7a1
add esp, 0x18
mov edi, edx
mov edx, eax
lea eax, [esp + 0x108]
mov ecx, esi
push eax
push edi
call fcn.0042d848
pop ecx
pop edx
test eax, eax
je 0x42ff97
mov ecx, dword [esp + 0xc]
mov ebx, eax
mov eax, dword [ecx]
sub eax, ebx
cdq
push 0x48
pop esi
idiv esi
mov edx, eax
call fcn.0057d973
mov eax, dword [ebx - 0x48]
mov ecx, dword [ebx - 0x44]
or ecx, dword [ebx - 0x3c]
or eax, dword [ebx - 0x40]
or eax, ecx
je 0x42ff97
mov edx, dword [ebx - 0x38]
mov esi, dword [ebx - 0x30]
mov eax, dword [ebx - 0x34]
mov edi, dword [ebx - 0x2c]
mov ecx, edx
mov dword [esp + 4], esi
or ecx, esi
mov esi, eax
or esi, edi
or esi, ecx
je 0x42ff97
mov ecx, dword [esp + 4]
add ebx, 0xffffffd8
cmp dword [ebp + 8], 0
mov dword [esp + 0x1e0], edx
mov dword [esp + 0x1e4], eax
mov dword [esp + 8], edi
mov dword [esp + 0x1ec], edi
mov dword [esp + 0x1e8], ecx
push 0xa
pop ecx
lea edi, [esp + 0x1f0]
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
je 0x4301df
mov ecx, dword [esp + 0xe0]
mov dword [esp + 0x354], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x350], edx
or ecx, dword [esp + 0xe4]
mov dword [esp + 0x358], eax
mov eax, dword [esp + 8]
setne byte [esp + 0x10]
mov dword [esp + 0x35c], eax
push 0xa
pop ecx
lea edi, [esp + 0x360]
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x10c]
mov edx, dword [esp + 0x94]
mov edi, dword [esp + 0x114]
mov ecx, dword [esp + 0xe8]
mov eax, dword [esp + 0x110]
mov ebx, dword [esp + 0x108]
xor ecx, edi
xor edx, esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 8], edi
mov dword [esp + 4], esi
or edx, ecx
mov ecx, dword [esp + 0x98]
xor ecx, eax
mov eax, dword [esp + 0xec]
xor eax, ebx
or eax, ecx
mov ecx, dword [esp + 0x38]
or eax, edx
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x34]
sete bl
and bl, byte [esp + 0x10]
xor eax, edi
xor edx, esi
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
or edx, eax
mov eax, dword [esp + 0x3c]
mov byte [esp + 0x395], bl
lea ebx, [esp + 0x150]
xor ecx, edi
xor eax, esi
or ecx, eax
or ecx, edx
mov edx, dword [esp + 0x18]
mov ecx, ebx
sete byte [esp + 0x396]
and dword [esp + 0x388], 0
xor eax, eax
mov byte [esp + 0x394], al
mov byte [esp + 0x397], al
lea eax, [esp + 0x350]
push eax
push dword [esp + 0xc]
push esi
push dword [esp + 0x10]
push edi
call fcn.0042e952
add esp, 0x14
mov ecx, ebx
call fcn.0043055e
jmp 0x42ff97
lea ecx, [esp + 0x1f0]
call fcn.0042e20c
jmp 0x42ff97
lea ecx, [esp + 0x2f8]
call fcn.0042e265
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0xd4]
mov ecx, edi
call fcn.0042e424
test al, al
je 0x4303d0
mov esi, dword [edi + 0x40]
mov eax, dword [edi + 0x48]
mov ecx, dword [edi + 0x4c]
mov edi, dword [edi + 0x44]
mov edx, edi
mov ebx, esi
or edx, ecx
or ebx, eax
or ebx, edx
mov ebx, dword [esp + 0xc]
je 0x430253
lea edx, [esp + 0x150]
mov dword [edx + 0xc], ecx
mov ecx, ebx
mov dword [edx], esi
mov dword [edx + 4], edi
mov dword [edx + 8], eax
call fcn.0042e424
test al, al
je 0x4303df
mov edi, dword [ebx + 0x34]
mov esi, dword [ebx + 0x30]
mov eax, dword [ebx + 0x38]
mov ecx, dword [ebx + 0x3c]
mov edx, edi
mov ebx, esi
or edx, ecx
or ebx, eax
or ebx, edx
je 0x43028e
lea edx, [esp + 0x150]
mov dword [edx + 0xc], ecx
mov ecx, dword [esp + 0xc]
mov dword [edx], esi
mov dword [edx + 4], edi
mov dword [edx + 8], eax
call fcn.0042e424
test al, al
je 0x4303ee
mov eax, dword [esp + 0x74]
test eax, eax
je 0x4302be
mov edx, dword [esp + 0x70]
lea esi, [esp + 0x150]
mov ecx, esi
push 0x10
push 0x28
push eax
call fcn.0047cd43
add esp, 0xc
mov ecx, dword [esi]
mov edx, dword [esi + 4]
push dword [esi + 8]
call fcn.00402161
pop eax
mov eax, dword [esp + 0x54]
test eax, eax
je 0x430351
mov ecx, dword [esp + 0x5c]
test ecx, ecx
je 0x430329
mov edi, dword [esp + 0x50]
movdqa xmm0, xmmword [edi]
lea ebx, [edi + 0x10]
pmovmskb eax, xmm0
not eax
sub ecx, 1
jae 0x4302fd
jmp 0x430325
movdqa xmm0, xmmword [ebx]
add edi, 0xfffffe00
add ebx, 0x10
pmovmskb eax, xmm0
not eax
test ax, ax
je 0x4302ea
bsf edx, eax
mov dword [esp + 4], ecx
mov ecx, edi
lea esi, [eax - 1]
shl edx, 5
and esi, eax
sub ecx, edx
add ecx, 0xfffffff0
call fcn.0042e20c
mov ecx, dword [esp + 4]
mov eax, esi
jmp 0x4302e3
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
lea esi, [esp + 0x150]
mov ecx, esi
push 0x10
push 0x20
push eax
call fcn.0047cd43
add esp, 0xc
mov ecx, dword [esi]
mov edx, dword [esi + 4]
push dword [esi + 8]
call fcn.00402161
pop eax
cmp byte [esp + 0x2c], 0
je 0x430364
lea ecx, [esp + 0x3e8]
call fcn.0043055e
cmp dword [esp + 0x20], 0
jne 0x43037e
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
call fcn.0042e232
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x34
pop edx
mov ecx, 0x7fbfa0
push 0x7fbfd4
call fcn.0063cd70
pop eax
ud2
lea edx, [esp + 0x150]
lea ecx, [esp + 0x1e0]
and dword [edx], 0
push 0x7fbfe4
jmp 0x4303c9
lea edx, [esp + 0x150]
lea ecx, [esp + 0x1e0]
and dword [edx], 0
push 0x7fbff4
call fcn.0063c00f
jmp 0x430398
push 0x3a
pop edx
mov ecx, str.assertion_failed:_self.nodes.contains_key_self.data.root_
push 0x7fbf40
jmp 0x430393
push 0x2e
pop edx
mov ecx, 0x7fbf50
push 0x7fbf80
jmp 0x430393
push 0x2e
pop edx
mov ecx, 0x7fbf50
push 0x7fbf90
jmp 0x430393