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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x280
cmp byte [edx + 0x38], 1
mov dword [esp + 4], edx
mov dword [esp + 0xb4], ecx
jne 0x52503f
mov ebx, ecx
lea ecx, [esp + 0x30]
call fcn.004dac40
cmp word [esp + 0x30], 1
jne 0x524f3c
mov eax, dword [esp + 0x34]
cmp al, 4
je 0x52503f
mov edx, dword [esp + 0x38]
jmp 0x52879f
mov esi, dword [esp + 0x32]
mov eax, dword [esp + 4]
mov edi, dword [esp + 0x36]
cmp word [eax + 0x30], si
jne 0x524f7a
mov ecx, dword [esp + 4]
mov eax, esi
shr eax, 0x10
cmp word [ecx + 0x32], ax
jne 0x524f7a
mov eax, dword [esp + 4]
cmp word [eax + 0x34], di
jne 0x524f7a
mov ecx, dword [esp + 4]
mov eax, edi
shr eax, 0x10
cmp word [ecx + 0x36], ax
je 0x52503f
mov ebx, dword [esp + 4]
mov ecx, dword [ebx + 0x2c]
cmp ecx, 1
ja 0x52895a
lea eax, [ecx + ecx*4]
mov edx, esi
lea ecx, [ebx + eax*4 + 4]
push edi
call fcn.005f4a80
add esp, 4
mov ecx, 1
sub ecx, dword [ebx + 0x2c]
cmp ecx, 2
jae 0x52896e
lea eax, [ecx + ecx*4]
mov edx, esi
lea ecx, [ebx + eax*4 + 4]
push edi
call fcn.005f4a80
add esp, 4
mov ecx, ebx
mov dword [ebx + 0x34], edi
mov dword [ebx + 0x30], esi
call fcn.004daee0
cmp al, 4
jne 0x52704a
mov ecx, 1
sub ecx, dword [ebx + 0x2c]
cmp ecx, 1
ja 0x5289a8
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + ecx*4 + 0xc]
test eax, eax
je 0x52503f
mov edx, dword [esp + 4]
shl eax, 3
lea edi, [eax + eax*2]
mov esi, dword [edx + ecx*4 + 4]
jmp 0x52501f
mov ecx, dword [esi]
mov byte [ecx + eax], 0x20
inc dword [esi + 8]
mov byte [esi + 0xe], 0
mov byte [esi + 0x12], 0
mov word [esi + 0xc], 0
add esi, 0x18
add edi, 0xffffffe8
je 0x52503f
mov dword [esi + 8], 0
mov eax, 0
cmp dword [esi + 4], 0
jne 0x525000
mov ecx, esi
xor edx, edx
call fcn.005bab80
mov eax, dword [esi + 8]
jmp 0x525000
mov eax, dword [0x6f1130]
test eax, eax
jne 0x52505a
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x528a19
mov dword [0x6f1130], eax
push 0x24
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x528a19
movsd xmm1, qword [0x685584]
mov esi, eax
mov eax, dword [0x685594]
movsd xmm0, qword [0x68558c]
movsd xmm2, qword [0x68557c]
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 4]
lea edx, [esp + 0x30]
lea ecx, [esp + 0x1a4]
movsd qword [esi + 0x10], xmm1
movsd xmm1, qword [0x685574]
mov dword [esi + 0x20], eax
movsd qword [esi + 0x18], xmm0
movsd qword [esi + 8], xmm2
movsd qword [esi], xmm1
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], 3
mov dword [esp + 0x38], 3
mov dword [esp + 0x3c], 0x10001
mov dword [esp + 0x40], 0x101
push dword [ebx + 0x34]
push dword [ebx + 0x30]
call fcn.005f70b0
add esp, 8
push esi
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [edi]
movdqa xmm1, xmmword [0x6070e0]
movdqu xmm0, xmmword [eax + 0x18]
mov dword [esp + 0x88], eax
pand xmm1, xmm0
psrlq xmm0, 0x20
por xmm0, xmmword [0x607100]
por xmm1, xmmword [0x6070f0]
subpd xmm0, xmmword [0x607110]
addpd xmm0, xmm1
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
divsd xmm1, xmm0
mulsd xmm1, qword [0x607120]
sub esp, 8
movsd qword [esp], xmm1
call fcn.00602cb0
add esp, 8
fstp qword [esp + 0x270]
xorpd xmm0, xmm0
movsd xmm1, qword [0x607128]
mov esi, 0x64
lea edx, [esp + 0x30]
lea ecx, [esp + 0x158]
maxsd xmm0, qword [esp + 0x270]
mov dword [esp + 0x30], 0
mov dword [esp + 0x3c], 0x1e
mov dword [esp + 0x40], 0
mov byte [esp + 0x44], 0x13
mov byte [esp + 0x48], 0x13
mov dword [esp + 0x4c], 0
mov byte [esp + 0x50], 0x13
mov byte [esp + 0x54], 0x13
mov word [esp + 0x58], 0x100
minsd xmm1, xmm0
cvttsd2si eax, xmm1
cmp ax, 0x64
cmovb esi, eax
push 8
push str.Progresssrc_core_renderer.rs
call fcn.0050dc00
add esp, 8
mov eax, dword [esp + 0x158]
movsd xmm0, qword [esp + 0x168]
mov cl, byte [esp + 0x180]
mov edx, dword [esp + 0x15c]
mov edi, dword [esp + 0x160]
cmp dword [esp + 0x1ac], 0
mov dword [esp + 0x24], eax
movzx eax, word [esp + 0x181]
movsd qword [esp + 0x1e8], xmm0
movsd xmm0, qword [esp + 0x170]
mov byte [esp + 0x1c], cl
mov word [esp + 0x100], ax
mov eax, dword [esp + 0x164]
movsd qword [esp + 0x1f0], xmm0
movsd xmm0, qword [esp + 0x178]
mov dword [esp + 0x7c], eax
mov ah, byte [esp + 0x183]
movsd qword [esp + 0x1f8], xmm0
mov byte [esp + 0x102], ah
je 0x52885c
mov ecx, dword [ebx + 0x2c]
cmp ecx, 2
jae 0x528252
mov eax, dword [esp + 0x1a4]
mov dword [esp + 0x98], esi
mov dword [esp + 0x8c], edx
lea edx, [ecx + ecx*4]
mov dword [esp + 0x2c], edi
mov dword [esp + 0xc], edx
lea edx, [ebx + edx*4 + 0x12]
mov dword [esp + 8], edx
mov esi, dword [eax]
mov eax, dword [eax + 4]
mov ecx, esi
mov dword [esp + 0x18], eax
shr eax, 0x10
mov dword [esp + 0x10], esi
shr ecx, 0x10
mov dword [esp + 0x84], eax
mov esi, ecx
mov dword [esp + 0x20], ecx
add si, ax
mov eax, 0xffff
cmovb esi, eax
cmp si, cx
mov dword [esp], esi
jbe 0x525352
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov esi, ebx
add si, di
cmovb esi, eax
mov eax, ebx
xor ecx, ecx
not eax
sub di, ax
mov eax, dword [esp + 4]
cmovb edi, ecx
sub edi, ebx
mov ebx, dword [esp + 0x20]
lea eax, [eax + edx*4 + 0xc]
mov dword [esp + 0x28], eax
jmp 0x525317
inc ebx
cmp bx, word [esp]
je 0x525352
cmp si, word [esp + 0x10]
jbe 0x525310
mov edx, dword [esp + 8]
mov ecx, ebx
mov eax, dword [esp + 0x28]
sub cx, word [edx]
mov eax, dword [eax]
imul cx, word [edx + 2]
add ecx, dword [esp + 0x10]
sub cx, word [edx - 2]
mov edx, edi
nop dword [eax]
movzx ecx, cx
cmp eax, ecx
jbe 0x527056
inc ecx
inc dx
jne 0x525340
jmp 0x525310
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc]
cmp byte [esp + 0x1c], 3
lea eax, [eax + ecx*4 + 4]
mov dword [esp + 0x28], eax
jne 0x525384
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x84]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x80], eax
jmp 0x5254c9
test byte [esp + 0x7c], 0x10
jne 0x52539c
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x94], eax
jmp 0x5253ce
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov edx, 0xffff
mov ecx, eax
inc cx
cmove ecx, edx
add ax, si
cmovb eax, edx
cmp cx, ax
cmovbe eax, ecx
mov ecx, esi
xor edx, edx
sub cx, 1
mov dword [esp + 0x94], eax
cmovb ecx, edx
mov edx, dword [esp + 0x7c]
mov edi, dword [esp + 0x20]
and edx, 2
or edx, dword [esp + 0x24]
jne 0x5253e8
mov ebx, dword [esp + 0x84]
jmp 0x52540b
inc di
mov edx, 0xffff
mov ebx, dword [esp + 0x84]
cmovne edx, edi
mov edi, dword [esp]
cmp dx, di
cmovbe edi, edx
xor edx, edx
sub bx, 1
cmovb ebx, edx
mov esi, ecx
mov eax, ecx
mov ecx, dword [esp + 0x7c]
xor edx, edx
movsd xmm0, qword [esp + 0x1e8]
movsd xmm1, qword [esp + 0x1f0]
sub si, 1
cmovb esi, edx
test cl, 4
cmove esi, eax
movzx eax, word [esp + 0x94]
mov dword [esp + 0x80], esi
mov esi, ebx
sub si, 1
cmovb esi, edx
test cl, 8
movzx edx, word [esp + 0x100]
cmove esi, ebx
shl edi, 0x10
mov ebx, dword [esp + 0x2c]
or edi, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ecx
movsd qword [esp + 0x40], xmm0
movsd xmm0, qword [esp + 0x1f8]
mov ch, byte [esp + 0x1c]
mov cl, byte [esp + 0x102]
movsd qword [esp + 0x48], xmm1
movsd qword [esp + 0x50], xmm0
mov byte [esp + 0x58], ch
mov word [esp + 0x59], dx
mov edx, dword [esp + 0x10]
mov byte [esp + 0x5b], cl
lea ecx, [esp + 0x30]
push dword [esp + 0x28]
push dword [esp + 0x1c]
call fcn.005f4cb0
add esp, 8
mov eax, edi
mov ecx, 0xffff
mov dword [esp + 0x84], esi
mov dword [esp + 0x20], edi
shr eax, 0x10
mov edx, eax
mov dword [esp + 0x8c], eax
add dx, si
cmovb edx, ecx
cmp dx, ax
mov dword [esp + 0x1c], edx
jbe 0x5255aa
mov edx, dword [esp + 0x80]
mov eax, edi
mov ebx, dword [esp + 0x8c]
add ax, dx
cmovb eax, ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 4]
lea eax, [eax + ecx*4 + 0xc]
mov dword [esp], eax
mov eax, edx
not eax
cmp ax, di
cmovae eax, edi
add eax, edx
sub eax, edi
mov dword [esp + 0x18], eax
jmp 0x52554c
inc ebx
mov edi, dword [esp + 0x20]
cmp bx, word [esp + 0x1c]
je 0x5255aa
cmp word [esp + 0x10], di
jbe 0x525540
mov eax, dword [esp + 8]
mov ecx, ebx
mov edx, dword [esp + 0x28]
sub cx, word [eax]
mov esi, dword [edx]
mov edx, dword [esp]
imul cx, word [eax + 2]
mov edx, dword [edx]
add ecx, dword [esp + 0x20]
sub cx, word [eax - 2]
mov eax, dword [esp + 0x18]
mov edi, eax
nop word [eax + eax]
movzx ecx, cx
cmp edx, ecx
jbe 0x527058
lea eax, [ecx + ecx*2]
inc ecx
mov dword [esi + eax*8 + 0xe], 0x10
mov dword [esi + eax*8 + 0x12], 1
or byte [esi + eax*8 + 0xc], 4
dec di
jne 0x525580
jmp 0x525540
cmp word [esp + 0x84], 0
je 0x52586c
movzx eax, word [esp + 0x98]
movsd xmm0, qword [0x607120]
xorps xmm1, xmm1
cvtsi2sd xmm1, eax
divsd xmm1, qword [0x607120]
movsd qword [esp + 0x10], xmm1
mulsd xmm0, xmm1
sub esp, 8
movsd qword [esp], xmm0
call fcn.00602ce0
add esp, 8
lea ecx, [esp + 0xb8]
fstp qword [esp + 0x120]
lea eax, [esp + 0x120]
mov dword [esp + 0x30], 0x6d6a10
mov dword [esp + 0x34], 2
mov dword [esp + 0x38], 0
lea edx, [esp + 0x30]
mov dword [esp + 0x40], ecx
lea ecx, [esp + 0x158]
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], 0x464630
mov dword [esp + 0x44], 1
call fcn.0040a660
mov eax, dword [esp + 0x15c]
mov ecx, dword [esp + 0x158]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x160]
mov dword [esp + 0x98], ecx
lea edx, [ecx + eax]
mov dword [esp + 0x94], eax
call fcn.005fd360
mov ecx, dword [esp + 0x80]
movzx edx, cx
cmp cx, ax
xorps xmm0, xmm0
cvtsi2sd xmm0, edx
cmovbe eax, ecx
mulsd xmm0, qword [esp + 0x10]
mov dword [esp + 0x90], eax
sub esp, 8
movsd qword [esp], xmm0
call fcn.00602ce0
add esp, 8
fstp qword [esp + 0x268]
mov eax, dword [esp + 0x1c]
cmp ax, word [esp + 0x8c]
mov eax, dword [esp + 4]
jbe 0x5257c8
xorpd xmm0, xmm0
movsd xmm1, qword [0x607128]
maxsd xmm0, qword [esp + 0x268]
minsd xmm1, xmm0
cvttsd2si ecx, xmm1
mov dword [esp + 0x24], ecx
add ecx, edi
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0xc]
lea eax, [eax + ecx*4 + 0xc]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x18], eax
mov dword [esp], ecx
jmp 0x525726
mov eax, dword [esp]
mov edi, dword [esp + 0x20]
inc eax
cmp ax, word [esp + 0x1c]
mov dword [esp], eax
je 0x5257c8
cmp word [esp + 0x7c], di
jbe 0x525710
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov esi, eax
jmp 0x525764
mov edx, dword [ecx]
inc edi
mov byte [edx + eax], 0x20
inc eax
mov dword [ecx + 8], eax
mov dword [ebx + esi*8 + 0xe], 1
mov dword [ebx + esi*8 + 0x12], 0x10
movzx esi, word [esp + 0x10]
dec si
je 0x525710
mov ecx, dword [esp + 8]
mov eax, dword [esp]
mov edx, dword [esp + 0x18]
sub ax, word [ecx]
mov edx, dword [edx]
imul ax, word [ecx + 2]
sub ax, word [ecx - 2]
add eax, edi
movzx ecx, ax
cmp edx, ecx
jbe 0x527058
mov eax, dword [esp + 0x28]
mov word [esp + 0x10], si
lea esi, [ecx + ecx*2]
mov ebx, dword [eax]
xor eax, eax
mov dword [ebx + esi*8 + 8], 0
lea ecx, [ebx + esi*8]
cmp dword [ebx + esi*8 + 4], 0
jne 0x525740
mov dword [esp + 0xc], ecx
xor edx, edx
push 1
call fcn.005f2340
mov ecx, dword [esp + 0x10]
add esp, 4
mov eax, dword [ecx + 8]
jmp 0x525740
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x30], 0
mov byte [esp + 0x34], 0x13
sub eax, ecx
movzx esi, cx
movzx ecx, word [esp + 0x158]
movzx edx, ax
movzx eax, word [esp + 0x84]
shr edx, 1
add edx, edi
lea edi, [esp + 0x30]
mov word [esp + 0x35], cx
mov cl, byte [esp + 0x15a]
shr eax, 1
add eax, dword [esp + 0x8c]
mov byte [esp + 0x37], cl
movzx ecx, word [esp + 0xb8]
mov byte [esp + 0x38], 0x13
mov word [esp + 0x39], cx
mov cl, byte [esp + 0xba]
mov byte [esp + 0x3b], cl
mov ecx, dword [esp + 0x28]
push edi
push esi
push dword [esp + 0x9c]
mov esi, dword [esp + 0xa4]
push esi
push eax
call fcn.005f38b0
add esp, 0x14
cmp dword [esp + 0x2c], 0
je 0x52586c
push esi
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov edx, dword [esp + 0x88]
lea ecx, [esp + 0xb8]
call fcn.004dd9b0
mov eax, dword [esp + 0xc0]
movsd xmm0, qword [esp + 0xb8]
lea ecx, [esp + 0x5c]
lea edx, [esp + 0x158]
mov byte [esp + 0x6c], 0x13
mov byte [esp + 0x70], 0x13
mov dword [esp + 0x68], 0
mov dword [esp + 0x160], eax
movsd qword [esp + 0x158], xmm0
call fcn.004cd1a0
lea edx, [esp + 0x158]
mov byte [esp + 0x58], 3
mov word [esp + 0x78], 2
mov dword [esp + 0x158], 0
mov dword [esp + 0x164], 0x1e
mov dword [esp + 0x168], 0
mov byte [esp + 0x16c], 0x13
mov byte [esp + 0x170], 0x13
mov dword [esp + 0x174], 0
mov byte [esp + 0x178], 0x13
mov byte [esp + 0x17c], 0x13
mov dword [esp + 0x74], 0
mov word [esp + 0x180], 0x100
lea ecx, [esp + 0xb8]
push 0xb
push str.Information
call fcn.0050dc00
add esp, 8
movsd xmm1, qword [esp + 0xc0]
movsd xmm0, qword [esp + 0xb8]
movsd xmm2, qword [esp + 0xd0]
mov eax, dword [esp + 0xe0]
lea edi, [esp + 0x158]
lea esi, [esp + 0x30]
mov ecx, 0x13
movsd qword [esp + 0x38], xmm1
movsd xmm1, qword [esp + 0xc8]
movsd qword [esp + 0x30], xmm0
movsd qword [esp + 0x48], xmm2
mov dword [esp + 0x58], eax
movsd qword [esp + 0x40], xmm1
movsd xmm1, qword [esp + 0xd8]
movsd qword [esp + 0x50], xmm1
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0x1ac]
cmp edx, 1
jbe 0x52886f
mov eax, dword [esp + 0x1a4]
lea edi, [esp + 0x30]
lea esi, [esp + 0x158]
mov ecx, 0x13
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 4]
mov ecx, dword [esi + 0x2c]
cmp ecx, 2
jae 0x528252
lea ecx, [ecx + ecx*4]
lea esi, [esi + ecx*4 + 4]
lea ecx, [esp + 0x30]
push esi
push eax
call fcn.005fef50
add esp, 8
mov eax, dword [0x6f1130]
test eax, eax
jne 0x525a1f
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x528a20
mov dword [0x6f1130], eax
push 0x18
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x528a20
movsd xmm0, qword [0x6855f0]
movsd xmm2, qword [0x6855e8]
movsd xmm1, qword [0x6855e0]
mov esi, eax
movsd qword [eax + 0x10], xmm0
movsd qword [eax + 8], xmm2
movsd qword [eax], xmm1
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 2
mov dword [esp + 0x38], 2
mov dword [esp + 0x3c], 0
mov word [esp + 0x40], 0x100
mov edx, dword [esp + 0x1ac]
cmp edx, 2
jbe 0x528883
mov eax, dword [esp + 0x1a4]
lea ecx, [esp + 0x1c8]
lea edx, [esp + 0x30]
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.005f70b0
add esp, 8
push esi
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [0x6f1130]
test eax, eax
jne 0x525ad5
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x528a12
mov dword [0x6f1130], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x528a12
mov dword [eax], 0x640000
mov esi, eax
movsd xmm0, qword [esp + 0x30]
movsd qword [eax + 4], xmm0
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 1
mov dword [esp + 0x38], 1
mov dword [esp + 0x3c], 0
mov word [esp + 0x40], 0x101
cmp dword [esp + 0x1d0], 0
je 0x528897
mov eax, dword [esp + 0x1c8]
lea ecx, [esp + 0x200]
lea edx, [esp + 0x30]
push dword [eax + 4]
push dword [eax]
call fcn.005f70b0
add esp, 8
push esi
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [0x6f1130]
test eax, eax
jne 0x525b73
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x528a12
mov dword [0x6f1130], eax
push 0xc
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x528a12
mov dword [eax], 0x640000
mov esi, eax
movsd xmm0, qword [esp + 0x30]
movsd qword [eax + 4], xmm0
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 1
mov dword [esp + 0x38], 1
mov dword [esp + 0x3c], 0x10001
mov word [esp + 0x40], 0x101
cmp dword [esp + 0x208], 0
je 0x5288aa
mov eax, dword [esp + 0x200]
lea ecx, [esp + 0x248]
lea edx, [esp + 0x30]
push dword [eax + 4]
push dword [eax]
call fcn.005f70b0
add esp, 8
push esi
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [esp + 0x208]
mov dword [esp + 0x30], 0
mov dword [esp + 0x3c], 0x1e
mov dword [esp + 0x40], 0
mov byte [esp + 0x44], 0x13
mov byte [esp + 0x48], 0x13
mov dword [esp + 0x4c], 0
mov byte [esp + 0x50], 0x13
mov byte [esp + 0x54], 0x13
mov word [esp + 0x58], 0x100
lea ecx, [esp + 0x20c]
lea edx, [esp + 0x30]
push 7
push str.Workers
call fcn.0050dc00
add esp, 8
test esi, esi
je 0x5288bd
mov eax, dword [esp + 0x200]
mov ecx, dword [esp + 0x234]
mov esi, dword [esp + 4]
movsd xmm2, qword [esp + 0x224]
movsd xmm1, qword [esp + 0x21c]
movsd xmm0, qword [esp + 0x22c]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x58], ecx
mov ecx, dword [esi + 0x2c]
movsd qword [esp + 0x48], xmm2
movsd qword [esp + 0x40], xmm1
movsd xmm2, qword [esp + 0x20c]
movsd xmm1, qword [esp + 0x214]
movsd qword [esp + 0x50], xmm0
cmp ecx, 2
movsd qword [esp + 0x38], xmm1
movsd qword [esp + 0x30], xmm2
jae 0x528252
lea ecx, [ecx + ecx*4]
lea esi, [esi + ecx*4 + 4]
lea ecx, [esp + 0x30]
push esi
push eax
call fcn.005f4cb0
add esp, 8
mov edx, dword [esp + 0x1ac]
cmp edx, 2
jbe 0x5288d0
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x1a4]
mov eax, dword [eax + 0x38]
movzx edx, word [ecx + 0x14]
imul ebx, edx, 0xcccd
movd xmm0, eax
shr ebx, 0x14
por xmm0, xmmword [0x6070f0]
mov dword [esp + 0x110], ebx
xorps xmm1, xmm1
cvtsi2sd xmm1, ebx
movzx ecx, word [ecx + 0x16]
subsd xmm0, qword [0x607130]
imul esi, ecx, 0xcccd
shr esi, 0x12
divsd xmm0, xmm1
sub esp, 8
movsd qword [esp], xmm0
call fcn.00602cb0
add esp, 8
fstp qword [esp + 0x260]
xorpd xmm1, xmm1
movsd xmm0, qword [esp + 0x260]
maxsd xmm0, xmm1
minsd xmm0, qword [0x607138]
cvttsd2si eax, xmm0
subsd xmm0, qword [0x607140]
mov ecx, eax
sar ecx, 0x1f
cvttsd2si edx, xmm0
and edx, ecx
lea ecx, [esp + 0x30]
or edx, eax
cmp edx, esi
cmovb edx, esi
mov dword [esp + 0x1d4], edx
call fcn.00507c90
mov esi, dword [esp + 0x38]
mov ecx, 0xc
mov eax, esi
mul ecx
jo 0x5289d0
mov edi, eax
test eax, eax
js 0x5289d0
test edi, edi
je 0x525df0
mov eax, dword [0x6f1130]
test eax, eax
jne 0x525ddc
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x5266c7
mov dword [0x6f1130], eax
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov ecx, eax
test eax, eax
jne 0x525df5
jmp 0x5266c7
mov ecx, 4
mov edx, 0xaaaaaaab
mov eax, edi
mov dword [esp + 0x10], ebx
mov dword [esp + 0x1b8], ecx
mul edx
shr edx, 3
cmp edx, esi
mov dword [esp + 0x1bc], edx
mov dword [esp + 0x1c0], 0
jb 0x528289
xor edi, edi
test esi, esi
je 0x525e64
movzx ebx, word [esp + 0x1d4]
lea eax, [edi + edi*2]
shl esi, 2
lea ecx, [ecx + eax*4]
nop dword [eax]
test bx, bx
je 0x52841a
mov ax, 0x64
xor edx, edx
inc edi
div bx
mov word [ecx], 0
mov word [ecx + 2], ax
add ecx, 0xc
add esi, 0xfffffffc
jne 0x525e40
test dword [esp + 0x34], 0x3fffffff
mov dword [esp + 0x1c0], edi
je 0x525e8d
push dword [esp + 0x30]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov edi, dword [esp + 0x1c0]
mov esi, dword [esp + 0x1b8]
mov ebx, dword [esp + 0x1bc]
cmp dword [esp + 0x250], 0
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], 0
mov word [esp + 0x40], 0x101
je 0x5288e4
mov eax, dword [esp + 0x248]
lea ecx, [esp + 0x254]
lea edx, [esp + 0x30]
push dword [eax + 4]
push dword [eax]
call fcn.005f70b0
add esp, 8
test ebx, ebx
je 0x525eff
shl ebx, 2
lea eax, [ebx + ebx*2]
test eax, eax
je 0x525eff
push esi
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x1d4]
test eax, eax
mov dword [esp + 0x28], eax
je 0x526657
mov edx, dword [esp + 0x10]
mov dword [esp], 0
nop dword [eax]
lea ecx, [esp + 0x30]
call fcn.00507c90
mov edi, dword [esp + 0x38]
mov ecx, 0xc
mov eax, edi
mul ecx
jo 0x5289d0
mov ebx, eax
test eax, eax
js 0x5289d0
test ebx, ebx
je 0x525f80
mov eax, dword [0x6f1130]
test eax, eax
jne 0x525f65
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x5289eb
mov dword [0x6f1130], eax
push ebx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov ecx, eax
test eax, eax
jne 0x525f85
jmp 0x5289eb
mov ecx, 4
mov eax, ebx
mov edx, 0xaaaaaaab
mov dword [esp + 0xf4], ecx
mul edx
shr edx, 3
cmp edx, edi
mov dword [esp + 0xf8], edx
mov dword [esp + 0xfc], 0
jb 0x526636
xor ebx, ebx
test edi, edi
je 0x525ff4
movzx esi, word [esp + 0x110]
lea eax, [ebx + ebx*2]
shl edi, 2
lea ecx, [ecx + eax*4]
nop dword [eax]
test si, si
je 0x5280b2
mov ax, 0x64
xor edx, edx
inc ebx
div si
mov word [ecx], 0
mov word [ecx + 2], ax
add ecx, 0xc
add edi, 0xfffffffc
jne 0x525fd0
test dword [esp + 0x34], 0x3fffffff
mov dword [esp + 0xfc], ebx
je 0x52601d
push dword [esp + 0x30]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov ebx, dword [esp + 0xfc]
mov eax, dword [esp + 0xf4]
mov esi, dword [esp + 0xf8]
mov edx, dword [esp + 0x25c]
mov edi, dword [esp]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], ebx
lea ebx, [esp + 0x3c]
cmp edx, edi
mov byte [ebx + 4], 0
mov dword [ebx], 0
mov byte [esp + 0x41], 1
jbe 0x528447
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x254]
lea ecx, [esp + 0x114]
lea edx, [esp + 0x30]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
call fcn.005f70b0
add esp, 8
test esi, esi
je 0x5260a0
shl esi, 2
lea eax, [esi + esi*2]
test eax, eax
je 0x5260a0
push dword [esp + 0x10]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0x88]
mov esi, dword [esp]
test eax, eax
je 0x5265ff
lea ecx, [eax - 1]
xor edi, edi
mov dword [esp + 0x10], ecx
imul eax, esi
lea ecx, [edi + eax]
cmp ecx, dword [edx + 0x38]
jae 0x5265f5
jmp 0x5260f7
mov eax, dword [esp + 0x110]
inc edi
imul eax, esi
lea ecx, [edi + eax]
cmp ecx, dword [edx + 0x38]
jae 0x5265f5
add eax, dword [edx + 0x30]
lea esi, [esp + 0xb8]
mov dword [esp + 0x120], 1
mov dword [esp + 0x124], 0
mov dword [esp + 0xb8], 0x6d4414
mov dword [esp + 0xbc], 1
mov dword [esp + 0x128], 0
mov dword [esp + 0xc0], 0
lea ecx, [esp + 0xa4]
mov edx, 0x608338
add eax, edi
mov dword [esp + 0x1d8], eax
lea eax, [esp + 0x1d8]
mov dword [esp + 0xac], eax
lea eax, [esp + 0xac]
mov dword [esp + 0x1b0], eax
lea eax, [esp + 0x120]
mov dword [esp + 0x1b4], 0x4ddec0
mov dword [esp + 0xa4], eax
lea eax, [esp + 0x1b0]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], 1
push esi
call fcn.0045b0f0
add esp, 4
test al, al
jne 0x528982
mov eax, dword [esp + 0x128]
movsd xmm0, qword [esp + 0x120]
lea ecx, [esp + 0x5c]
mov edx, esi
mov byte [esp + 0x6c], 0x13
mov byte [esp + 0x70], 0x13
mov dword [esp + 0x68], 0
mov dword [esp + 0xc0], eax
movsd qword [esp + 0xb8], xmm0
call fcn.004cd1a0
mov eax, dword [esp + 0x1b0]
mov ecx, dword [esp + 0x1b4]
mov byte [esp + 0x58], 3
mov word [esp + 0x78], 2
mov dword [esp + 0x74], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x120], eax
movzx eax, word [esp + 0x1e5]
mov dword [esp + 0x124], ecx
mov ecx, dword [esp + 0x124]
mov word [esp + 0xac], ax
mov al, byte [esp + 0x1e7]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x1d8]
mov byte [esp + 0xae], al
movzx eax, word [esp + 0x1e2]
mov word [esp + 0xa0], ax
mov al, byte [esp + 0x1e4]
mov byte [esp + 0xa2], al
movzx eax, word [esp + 0x1df]
mov word [esp + 0x9c], ax
mov al, byte [esp + 0x1e1]
mov byte [esp + 0x9e], al
movzx eax, word [esp + 0x1dc]
mov word [esp + 0x10c], ax
mov al, byte [esp + 0x1de]
mov byte [esp + 0x10e], al
mov eax, dword [esp + 0x120]
mov dword [esp + 0x34], eax
mov al, byte [esp + 0xae]
mov dword [esp + 0x3c], 0x1e
mov dword [esp + 0x40], 0
mov byte [esp + 0x44], 0x13
mov byte [ebx + 0xb], al
movzx eax, word [esp + 0xac]
mov word [ebx + 9], ax
mov al, byte [esp + 0xa2]
mov byte [esp + 0x48], 0x13
mov byte [ebx + 0xf], al
movzx eax, word [esp + 0xa0]
mov word [ebx + 0xd], ax
mov al, byte [esp + 0x9e]
mov dword [esp + 0x4c], 0
mov byte [esp + 0x50], 0x13
mov byte [ebx + 0x17], al
movzx eax, word [esp + 0x9c]
mov word [ebx + 0x15], ax
mov al, byte [esp + 0x10e]
mov byte [esp + 0x54], 0x13
mov byte [ebx + 0x1b], al
movzx eax, word [esp + 0x10c]
mov word [ebx + 0x19], ax
mov word [esp + 0x58], 0x100
mov al, byte [ebx + 0x33]
movsd xmm0, qword [esp + 0x50]
movsd xmm1, qword [esp + 0x48]
mov byte [esp + 0x10a], al
movzx eax, word [ebx + 0x31]
movsd qword [esp + 0xd8], xmm0
movsd xmm0, qword [esp + 0x40]
movsd qword [esp + 0xd0], xmm1
movsd xmm1, qword [esp + 0x38]
mov dl, byte [esp + 0x10a]
mov word [esp + 0x108], ax
mov al, byte [ebx + 0x37]
movsd qword [esp + 0xc8], xmm0
movsd xmm0, qword [esp + 0x60]
movsd qword [esp + 0xc0], xmm1
movsd xmm1, qword [esp + 0xc0]
mov byte [esp + 0x106], al
movzx eax, word [ebx + 0x35]
movsd qword [esp + 0xe8], xmm0
movsd xmm0, qword [esp + 0x58]
mov word [esp + 0x104], ax
mov al, byte [ebx + 0x3c]
movsd qword [esp + 0xe0], xmm0
movsd xmm0, qword [esp + 0x30]
mov byte [esp + 0xa8], al
mov eax, dword [ebx + 0x38]
movsd qword [esp + 0xb8], xmm0
movsd xmm0, qword [esp + 0xe8]
mov dword [esp + 0xa4], eax
movzx eax, word [esp + 0x7a]
movzx ecx, byte [ecx]
mov byte [esp + 0xa2], dl
movzx edx, word [esp + 0x108]
movsd qword [esp + 0x150], xmm0
movsd xmm0, qword [esp + 0xe0]
movsd qword [esp + 0x128], xmm1
mov word [esp + 0xa0], dx
mov dl, byte [esp + 0x106]
movsd qword [esp + 0x148], xmm0
movsd xmm0, qword [esp + 0xd8]
mov byte [esp + 0x9e], dl
movzx edx, word [esp + 0x104]
movsd qword [esp + 0x140], xmm0
movsd xmm0, qword [esp + 0xd0]
mov word [esp + 0x9c], dx
mov dl, byte [esp + 0xa8]
movsd qword [esp + 0x138], xmm0
movsd xmm0, qword [esp + 0xc8]
mov byte [esp + 0xb0], dl
mov edx, dword [esp + 0xa4]
movsd qword [esp + 0x130], xmm0
movsd xmm0, qword [esp + 0xb8]
mov dword [esp + 0xac], edx
mov edx, dword [esp + 0x11c]
movsd qword [esp + 0x120], xmm0
cmp edx, edi
jbe 0x528278
mov esi, dword [esp + 0x114]
movsd xmm2, qword [esp + 0x148]
movsd xmm1, qword [esp + 0x140]
mov dword [esp + 8], edi
mov cl, byte [ecx + 0x6dd8a8]
movsd xmm0, qword [esp + 0x150]
mov ch, byte [esp + 0xa2]
mov edx, dword [esi + edi*8]
mov edi, dword [esi + edi*8 + 4]
movsd qword [esp + 0x58], xmm2
movsd qword [esp + 0x50], xmm1
movsd xmm2, qword [esp + 0x138]
movsd xmm1, qword [esp + 0x130]
movzx esi, word [esp + 0xa0]
movsd qword [esp + 0x60], xmm0
movsd qword [esp + 0x48], xmm2
movsd qword [esp + 0x40], xmm1
movsd xmm2, qword [esp + 0x120]
movsd xmm1, qword [esp + 0x128]
movsd qword [esp + 0x38], xmm1
movsd qword [esp + 0x30], xmm2
mov dword [esp + 0x68], 0
mov byte [esp + 0x6c], 0x10
mov word [ebx + 0x31], si
mov byte [ebx + 0x33], ch
mov byte [esp + 0x70], cl
mov cl, byte [esp + 0x9e]
mov esi, dword [esp + 4]
mov byte [ebx + 0x37], cl
movzx ecx, word [esp + 0x9c]
mov word [ebx + 0x35], cx
mov ecx, dword [esp + 0xac]
mov dword [ebx + 0x38], ecx
mov cl, byte [esp + 0xb0]
mov byte [ebx + 0x3c], cl
mov ecx, dword [esi + 0x2c]
mov byte [esp + 0x79], 1
mov word [esp + 0x7a], ax
cmp ecx, 2
jae 0x528252
lea eax, [ecx + ecx*4]
lea ecx, [esp + 0x30]
lea eax, [esi + eax*4 + 4]
push eax
push edi
call fcn.005fef50
add esp, 8
mov edx, dword [esp + 0x88]
mov esi, dword [esp]
mov edi, dword [esp + 8]
lea ebx, [esp + 0x3c]
cmp dword [esp + 0x10], edi
jne 0x5260e0
inc esi
test dword [esp + 0x118], 0x1fffffff
je 0x526621
push dword [esp + 0x114]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
cmp esi, dword [esp + 0x28]
je 0x526657
mov edx, dword [esp + 0x110]
mov dword [esp], esi
jmp 0x525f20
lea ecx, [esp + 0xf4]
mov edx, edi
call fcn.00557280
mov ecx, dword [esp + 0xf4]
mov ebx, dword [esp + 0xfc]
jmp 0x525fb8
mov edx, dword [esp + 0x1d0]
cmp edx, 1
jbe 0x528908
mov eax, dword [esp + 0x1c8]
mov edx, dword [esp + 0x88]
mov ebx, 0x40
movzx eax, word [eax + 0xc]
mov dword [esp + 0x1b0], eax
mov esi, dword [edx + 0x44]
mov ecx, dword [edx + 0x3c]
cmp esi, 0x40
mov dword [esp + 8], ecx
cmovb ebx, esi
test ebx, ebx
je 0x5266ce
lea eax, [ebx*8]
lea edi, [eax + eax*2]
mov eax, dword [0x6f1130]
test eax, eax
jne 0x5266ba
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x5266c7
mov dword [0x6f1130], eax
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
jne 0x5266d3
mov ecx, edi
jmp 0x528a25
mov eax, 4
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], ebx
mov ebx, dword [esp + 8]
mov ecx, esi
shl esi, 2
mov dword [esp + 0x28], eax
mov dword [esp + 0x11c], 0
lea eax, [esi + esi*2]
and ecx, 0x3fffffff
mov esi, 0xfffffd00
neg eax
mov dword [esp + 0xc], ecx
mov dword [esp], eax
jmp 0x5267d6
mov dword [0x6f1130], eax
push ebx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov ecx, dword [esp + 0x18]
mov edi, eax
test eax, eax
je 0x5289ef
push ebx
push ecx
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov dword [esp + 0x120], edi
mov dword [esp + 0x124], ebx
mov dword [esp + 0x128], ebx
mov ebx, dword [esp + 0x10]
lea edi, [esp + 0xb8]
mov eax, dword [esp + 0x128]
movsd xmm0, qword [esp + 0x120]
lea ecx, [esp + 0x30]
mov edx, edi
add ebx, 0xc
mov dword [esp + 0xc0], eax
movsd qword [esp + 0xb8], xmm0
call fcn.004cd1a0
mov byte [esp + 0x40], 0x13
mov byte [esp + 0x44], 0x13
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0x28]
movsd xmm0, qword [esp + 0x40]
movsd qword [eax + esi*2 + 0x610], xmm0
movsd xmm0, qword [esp + 0x38]
movsd qword [eax + esi*2 + 0x608], xmm0
movsd xmm0, qword [esp + 0x30]
movsd qword [eax + esi*2 + 0x600], xmm0
add esi, 0xc
je 0x5269a7
mov eax, dword [esp]
add eax, esi
cmp eax, 0xfffffd00
je 0x5269a1
mov ecx, dword [esp + 0x1b0]
mov dword [esp + 0x10], ebx
mov ebx, dword [ebx + 8]
lea eax, [ecx - 2]
cmp ebx, eax
jbe 0x526830
mov edx, dword [esp + 8]
add ecx, 0xfffffffb
mov eax, ebx
mov edi, 0
sub eax, ecx
cmovb eax, edi
mov edx, dword [edx + esi + 0x300]
jbe 0x526878
cmp ebx, eax
jbe 0x526872
cmp byte [edx + eax], 0xbf
jg 0x526878
jmp 0x5289fd
test ebx, ebx
js 0x5289d0
mov eax, dword [esp + 8]
mov ecx, dword [eax + esi + 0x300]
je 0x526868
mov eax, dword [0x6f1130]
mov dword [esp + 0x18], ecx
test eax, eax
jne 0x52671a
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
jne 0x526715
jmp 0x5289ef
mov edi, 1
jmp 0x526731
jne 0x5289fd
sub ebx, eax
add edx, eax
lea ecx, [esp + 0x30]
push ebx
call fcn.0040b080
add esp, 4
mov edi, dword [esp + 0x30]
xor eax, eax
cmp edi, 1
sete al
mov ebx, dword [esp + eax*4 + 0x38]
test ebx, ebx
js 0x5289d0
mov ecx, dword [esp + 0x34]
je 0x5268e1
mov dword [esp + 0x18], ecx
mov eax, dword [0x6f1130]
test eax, eax
jne 0x5268c6
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x5289ef
mov dword [0x6f1130], eax
push ebx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x5289ef
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
jmp 0x5268e6
mov eax, 1
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ebx
push ebx
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
test edi, edi
mov dword [esp + 0xc0], ebx
je 0x526922
cmp dword [esp + 0x38], 0
je 0x526922
push dword [esp + 0x34]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
lea edi, [esp + 0xb8]
lea eax, [esp + 0xf4]
lea ecx, [esp + 0x120]
lea edx, [esp + 0x30]
mov dword [esp + 0x30], 0x6845cc
mov dword [esp + 0x34], 1
mov dword [esp + 0x38], 0
mov dword [esp + 0xf4], edi
mov dword [esp + 0x40], eax
mov dword [esp + 0xf8], 0x41e510
mov dword [esp + 0x44], 1
call fcn.0040a660
cmp dword [esp + 0xbc], 0
mov ebx, dword [esp + 0x10]
je 0x52675c
push dword [esp + 0xb8]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x52675c
mov eax, dword [esp + 0xc]
jmp 0x5269ac
mov eax, 0x40
mov dword [esp + 0x11c], eax
mov dword [esp + 0xc], eax
lea ecx, [esp + 0xb8]
lea edx, [esp + 0x30]
mov byte [esp + 0x44], 0x13
mov byte [esp + 0x48], 0x13
mov dword [esp + 0x40], 0
mov byte [esp + 0x50], 0x13
mov byte [esp + 0x54], 0x13
mov dword [esp + 0x4c], 0
mov dword [esp + 0x30], 0
mov word [esp + 0x58], 0
mov dword [esp + 0x3c], 1
mov eax, dword [esp + 0x114]
mov edi, dword [esp + 0x118]
mov dword [esp + 0x2c], eax
push 5
push str.Queue__
call fcn.0050dc00
add esp, 8
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + 0x1d0]
movsd xmm0, qword [esp + 0xd8]
mov ebx, dword [esp + 0xb8]
movsd xmm1, qword [esp + 0xd0]
movsd xmm2, qword [esp + 0xc8]
mov cl, byte [esp + 0xe0]
mov esi, dword [esp + 4]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xc0]
cmp edx, 1
movsd qword [esp + 0x40], xmm0
mov dword [esp + 0x84], eax
movzx eax, word [esp + 0xe2]
movsd qword [esp + 0xb8], xmm2
movsd qword [esp + 0xc0], xmm1
movsd qword [esp + 0xc8], xmm0
jbe 0x52891c
mov byte [esp + 0x18], cl
mov ecx, dword [esi + 0x2c]
cmp ecx, 2
jae 0x528252
mov word [esp + 0x24], ax
mov eax, dword [esp + 0x1c8]
mov dword [esp + 0x240], edi
mov dword [esp + 0x98], ebx
lea ecx, [ecx + ecx*4]
mov dword [esp + 0x28], ecx
lea ecx, [esi + ecx*4 + 0x12]
mov dword [esp + 0x8c], ecx
mov edx, dword [eax + 8]
mov edi, dword [eax + 0xc]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x20], edx
shr edx, 0x10
mov dword [esp + 0x80], edi
shr edi, 0x10
mov dword [esp + 0xf4], eax
mov eax, 0xffff
mov ebx, edx
mov dword [esp], edi
mov dword [esp + 0x1c], edx
add bx, di
cmovb ebx, eax
cmp bx, dx
jbe 0x526ba2
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 0x20]
mov esi, edi
mov ecx, edx
add si, dx
mov edx, dword [esp + 0x28]
cmovb esi, eax
mov eax, edi
not eax
sub cx, ax
mov eax, dword [esp + 4]
lea eax, [eax + edx*4 + 0xc]
mov dword [esp + 8], eax
mov eax, 0
cmovb ecx, eax
mov eax, dword [esp + 0x1c]
sub ecx, edi
mov dword [esp + 0x10], ecx
jmp 0x526b66
inc eax
cmp ax, bx
je 0x526ba2
cmp si, word [esp + 0x20]
jbe 0x526b60
mov edi, dword [esp + 0x8c]
mov ecx, eax
mov edx, dword [esp + 8]
sub cx, word [edi]
mov edx, dword [edx]
imul cx, word [edi + 2]
add ecx, dword [esp + 0x20]
sub cx, word [edi - 2]
mov edi, dword [esp + 0x10]
movzx ecx, cx
cmp edx, ecx
jbe 0x527058
inc ecx
inc di
jne 0x526b90
jmp 0x526b60
mov dl, byte [esp + 0x18]
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x28]
lea eax, [eax + ecx*4 + 4]
cmp dl, 3
mov dword [esp + 0x88], eax
jne 0x526bde
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x80]
mov edx, dword [esp]
test ax, ax
jne 0x526cd0
jmp 0x527089
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x80]
mov edx, 0xffff
mov ecx, dword [esp]
movsd xmm0, qword [esp + 0xb8]
movsd xmm1, qword [esp + 0xc0]
mov eax, edi
inc ax
cmove eax, edx
add di, si
cmovb edi, edx
cmp ax, di
cmovbe edi, eax
mov eax, dword [esp + 0x1c]
inc ax
cmove eax, edx
mov dl, byte [esp + 0x18]
cmp ax, bx
cmovbe ebx, eax
xor eax, eax
sub si, 2
cmovb esi, eax
sub cx, 2
cmovb ecx, eax
movzx eax, di
shl ebx, 0x10
mov edi, dword [esp + 0x84]
or ebx, eax
mov eax, dword [esp + 0x98]
mov dword [esp], ecx
movzx ecx, word [esp + 0x24]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], 0x1e
movsd qword [esp + 0x40], xmm0
movsd xmm0, qword [esp + 0xc8]
movsd qword [esp + 0x48], xmm1
movsd qword [esp + 0x50], xmm0
mov byte [esp + 0x58], dl
mov edx, dword [esp + 0x20]
mov byte [esp + 0x59], 1
mov word [esp + 0x5a], cx
lea ecx, [esp + 0x30]
push dword [esp + 0x88]
push dword [esp + 0x84]
call fcn.005f4cb0
add esp, 8
mov eax, esi
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x20], ebx
mov edx, dword [esp]
test ax, ax
je 0x527089
test dx, dx
je 0x527089
test ecx, ecx
je 0x527198
lea ecx, [ecx*8]
mov dword [esp + 0x80], eax
movzx eax, dx
xor edi, edi
mov dword [esp + 0x24], 0
lea ecx, [ecx + ecx*2]
lea edx, [esi + ecx]
mov dword [esp + 0x23c], edx
test ecx, ecx
je 0x526d2d
nop dword [eax]
test esi, esi
je 0x526d2d
mov edx, dword [esi + 8]
add edx, edi
cmp edx, eax
ja 0x526d2d
inc dword [esp + 0x24]
add esi, 0x18
add ecx, 0xffffffe8
mov edi, edx
test ecx, ecx
jne 0x526d10
xor ebx, ebx
cmp dword [esp + 0x24], 0
je 0x5280f0
mov esi, dword [esp + 0x2c]
lea edx, [0x685697]
mov ecx, 0x685695
call fcn.005fd360
lea ecx, [esp + 0x120]
mov edx, 0x6d8f38
push eax
call fcn.0040afa0
add esp, 4
sub dword [esp + 0x24], ebx
je 0x527067
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x80]
mov edi, 0xffff
mov dword [esp + 0x1c4], 0
mov eax, ecx
shr eax, 0x10
mov dword [esp + 0x238], eax
mov eax, ecx
add ax, dx
cmovb eax, edi
mov edi, dword [esp + 0x28]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 4]
lea eax, [eax + edi*4 + 0xc]
mov dword [esp + 0x90], eax
mov eax, edx
not eax
cmp ax, cx
cmovae eax, ecx
add eax, edx
sub eax, ecx
mov dword [esp + 0x244], eax
jmp 0x526de2
mov esi, dword [esp + 0x2c]
add esi, 0x18
cmp dword [esp + 0x24], 0
je 0x527067
cmp esi, dword [esp + 0x23c]
je 0x527067
test esi, esi
je 0x527067
mov eax, dword [esp + 0x238]
mov ecx, dword [esp + 0x1c4]
mov ebx, dword [esi + 0x10]
mov edx, dword [esi + 8]
mov dword [esp + 0x2c], esi
add ecx, eax
mov eax, dword [esi + 0x14]
cmp bl, 0x13
mov esi, 0x13
mov dword [esp + 0x84], edx
cmove ebx, esi
mov dword [esp + 0x94], ecx
mov dword [esp + 0x10], ebx
cmp al, 0x13
cmove eax, esi
add dx, cx
mov esi, 0xffff
cmovb edx, esi
mov dword [esp + 8], eax
cmp cx, dx
mov dword [esp + 0x7c], edx
jae 0x526f30
mov eax, dword [esp + 0x2c]
movzx ecx, word [eax + 0xc]
movzx eax, word [eax + 0xe]
mov word [esp + 0x28], cx
mov ecx, dword [esp + 0x94]
not eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
jmp 0x526e94
mov eax, dword [esp + 0x1c]
inc eax
cmp ax, word [esp + 0x7c]
mov dword [esp + 0x1c], eax
je 0x526f30
mov eax, dword [esp + 0x98]
cmp ax, word [esp + 0x20]
jbe 0x526e80
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x90]
mov edx, dword [esp + 0x88]
sub cx, word [eax]
mov esi, dword [esi]
mov edx, dword [edx]
imul cx, word [eax + 2]
mov dword [esp], esi
add ecx, dword [esp + 0x20]
sub cx, word [eax - 2]
mov eax, dword [esp + 0x244]
mov esi, eax
jmp 0x526efd
lea eax, [ecx + ecx*2]
mov edi, dword [esp + 0x18]
inc ecx
movzx ebx, word [edx + eax*8 + 0xc]
or bx, word [esp + 0x28]
and edi, ebx
dec si
mov word [edx + eax*8 + 0xc], di
je 0x526e80
movzx ecx, cx
cmp dword [esp], ecx
jbe 0x528266
cmp byte [esp + 0x10], 0x13
je 0x526f1b
mov edi, dword [esp + 0x10]
lea eax, [ecx + ecx*2]
mov dword [edx + eax*8 + 0xe], edi
cmp byte [esp + 8], 0x13
je 0x526ee0
mov edi, dword [esp + 8]
lea eax, [ecx + ecx*2]
mov dword [edx + eax*8 + 0x12], edi
jmp 0x526ee0
mov eax, dword [esp + 0x84]
dec dword [esp + 0x24]
add dword [esp + 0x1c4], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 8]
test eax, eax
je 0x526dd0
mov ecx, dword [esp + 0x2c]
lea eax, [eax + eax*2]
mov dword [esp + 0x7c], 0
mov ecx, dword [ecx]
lea eax, [ecx + eax*4]
mov dword [esp + 0x84], eax
jmp 0x526f85
mov ecx, dword [esp + 0x1c]
inc dword [esp + 0x7c]
cmp ecx, dword [esp + 0x84]
je 0x526dd0
lea eax, [ecx + 0xc]
mov dword [esp + 0x1c], eax
mov eax, dword [ecx + 8]
test eax, eax
je 0x526f70
mov ebx, dword [ecx]
mov edx, dword [esp + 0x94]
mov esi, dword [esp + 0x7c]
lea ecx, [eax + eax*8]
mov edi, dword [esp + 0x20]
lea ecx, [ecx + ecx*2]
add ecx, eax
mov eax, dword [esp + 0x80]
add edx, esi
add ecx, ebx
mov dword [esp + 0x28], edx
mov dword [esp + 0x18], ecx
nop
mov ecx, dword [ebx + 4]
mov word [esp + 0x10], ax
movzx esi, ax
mov edx, edi
lea eax, [esp + 0x30]
mov dword [esp + 8], ecx
xor ecx, ecx
cmp dword [ebx], 1
sete cl
mov ecx, dword [ebx + ecx*4 + 8]
mov dword [esp], ecx
mov ecx, dword [ebx + 0x18]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x88]
movsd xmm0, qword [ebx + 0x10]
movsd qword [esp + 0x30], xmm0
push eax
push esi
push dword [esp + 8]
push dword [esp + 0x14]
push dword [esp + 0x38]
call fcn.005f38b0
add esp, 0x14
mov ecx, eax
mov edx, 0
sub cx, di
cmovb ecx, edx
sub si, cx
cmovb esi, edx
add ebx, 0x1c
movzx edx, word [esp + 0x10]
cmp ebx, dword [esp + 0x18]
je 0x526f70
mov edi, eax
cmp dx, cx
mov eax, esi
ja 0x526fc0
jmp 0x526f70
mov ebx, dword [esp + 0xb4]
jmp 0x52879f
mov edx, eax
push 0x6d6934
call fcn.0045a150
add esp, 4
ud2
cmp dword [esp + 0x124], 0
je 0x527085
push dword [esp + 0x120]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x527198
mov esi, dword [esp + 0xf4]
lea eax, [ecx + ecx*2]
lea eax, [esi + eax*8]
mov dword [esp], eax
jmp 0x5270b9
cmp esi, dword [esp]
je 0x527198
mov eax, dword [esi + 8]
mov dword [esp + 8], esi
test eax, eax
je 0x527160
mov ecx, dword [esp + 8]
lea eax, [eax + eax*2]
mov edi, dword [ecx]
lea eax, [edi + eax*4]
mov dword [esp + 0x10], eax
jmp 0x5270e6
cmp edi, dword [esp + 0x10]
je 0x527160
mov eax, dword [edi + 8]
mov esi, edi
test eax, eax
je 0x527130
mov edi, dword [esi]
lea ecx, [eax + eax*8]
lea ebx, [ecx + ecx*2]
add ebx, eax
add edi, 8
jmp 0x527108
add edi, 0x1c
add ebx, 0xffffffe4
je 0x527130
cmp dword [edi - 8], 0
je 0x527100
cmp dword [edi], 0
je 0x527100
push dword [edi - 4]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x527100
mov eax, dword [esi + 4]
lea edi, [esi + 0xc]
test eax, eax
je 0x5270e0
lea ecx, [eax + eax*8]
lea ecx, [ecx + ecx*2]
add ecx, eax
je 0x5270e0
push dword [esi]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x5270e0
mov eax, dword [esp + 8]
lea esi, [eax + 0x18]
mov eax, dword [eax + 4]
test eax, eax
je 0x5270b0
shl eax, 2
lea eax, [eax + eax*2]
test eax, eax
je 0x5270b0
mov eax, dword [esp + 8]
push dword [eax]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x5270b0
mov eax, dword [esp + 0x240]
test eax, eax
je 0x5271c1
shl eax, 3
lea eax, [eax + eax*2]
test eax, eax
je 0x5271c1
push dword [esp + 0xf4]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
test dword [esp + 0x258], 0x1fffffff
je 0x5271e2
push dword [esp + 0x254]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
test dword [esp + 0x24c], 0x1fffffff
mov esi, dword [esp + 4]
je 0x527207
push dword [esp + 0x248]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
test dword [esp + 0x204], 0x1fffffff
je 0x527228
push dword [esp + 0x200]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
test dword [esp + 0x1cc], 0x1fffffff
je 0x527249
push dword [esp + 0x1c8]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
test dword [esp + 0x1a8], 0x1fffffff
je 0x52726a
push dword [esp + 0x1a4]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov ecx, dword [esi + 0x2c]
mov eax, 1
sub eax, ecx
cmp eax, 1
ja 0x528930
cmp ecx, 2
jae 0x528946
mov edx, dword [0x6d6b64]
lea eax, [eax + eax*4]
lea ecx, [ecx + ecx*4]
mov edi, dword [esi + eax*4 + 0xc]
mov dword [esp + 0x120], edx
mov dword [esp + 0x1c], edx
mov edx, dword [esi + ecx*4 + 0xc]
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], 0
cmp edx, edi
mov dword [esp + 0xc], edx
cmovbe edi, edx
movzx edx, word [esi + eax*4 + 0x14]
test edi, edi
mov dword [esp + 0x20], edi
je 0x527569
mov ecx, dword [esi + ecx*4 + 4]
mov eax, dword [esi + eax*4 + 4]
mov word [esp + 0x7c], dx
xor ebx, ebx
xor edx, edx
mov dword [esp + 0x88], 0
mov dword [esp + 8], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x18], ecx
mov dword [esp], eax
jmp 0x527328
mov edx, dword [esp + 0x10]
add ebx, 0x18
mov eax, dword [esp]
mov dword [esp + 8], esi
cmp dword [esp + 0x20], edx
je 0x52754b
mov esi, dword [esp + 0x18]
mov cl, 1
mov dword [esp + 0x10], edx
mov edi, dword [esi + ebx + 8]
cmp edi, dword [eax + ebx + 8]
jne 0x5273b6
push edi
push dword [eax + ebx]
push dword [esi + ebx]
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x5273b0
movzx eax, byte [esi + ebx + 0xe]
mov ecx, dword [esp]
cmp al, byte [ecx + ebx + 0xe]
jne 0x5273b0
cmp eax, 0x12
je 0x5274b8
mov edx, dword [esp + 0x10]
cmp eax, 0x11
jne 0x5274d2
cmp al, 0x11
jne 0x5274d2
movzx eax, byte [esi + ebx + 0xf]
mov ecx, dword [esp]
cmp al, byte [ecx + ebx + 0xf]
jne 0x5273b4
movzx eax, byte [ecx + ebx + 0x10]
cmp byte [esi + ebx + 0x10], al
jne 0x5273b4
movzx eax, byte [esi + ebx + 0x11]
cmp al, byte [ecx + ebx + 0x11]
jne 0x5273b4
jmp 0x5274d2
mov edx, dword [esp + 0x10]
mov cl, 1
cmp dword [esp + 8], 0
setne al
or al, cl
cmp al, 1
jne 0x52745a
cmp dword [esp + 0x28], 0
jne 0x52745a
movzx ecx, word [esp + 0x7c]
test cx, cx
je 0x528458
cmp dword [esp + 0xc], edx
jbe 0x528471
mov eax, edx
xor edx, edx
div cx
mov ecx, esi
shl eax, 0x10
movzx esi, dx
mov edx, dword [esp + 0x88]
lea edi, [ecx + ebx]
or esi, eax
cmp edx, dword [esp + 0x124]
jne 0x527430
lea ecx, [esp + 0x120]
call fcn.00594830
mov eax, dword [esp + 0x120]
mov edx, dword [esp + 0x128]
jmp 0x527434
mov eax, dword [esp + 0x1c]
mov dword [eax + edx*8], esi
mov esi, dword [esp + 0x18]
mov dword [eax + edx*8 + 4], edi
inc edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x128], edx
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x10]
mov edi, dword [esi + ebx + 8]
mov ecx, dword [esi + ebx]
inc edx
mov dword [esp + 0x10], edx
add edi, ecx
mov edx, edi
call fcn.005fd360
mov edx, esi
xor esi, esi
sub eax, 1
mov ecx, dword [edx + ebx]
mov edx, dword [edx + ebx + 8]
cmovb eax, esi
mov dword [esp + 0x28], eax
add edx, ecx
call fcn.005fd360
mov edi, eax
mov eax, dword [esp]
mov ecx, dword [eax + ebx]
mov edx, dword [eax + ebx + 8]
add edx, ecx
call fcn.005fd360
mov ecx, dword [esp + 8]
cmp edi, eax
cmova eax, edi
cmp eax, ecx
cmovbe eax, ecx
sub eax, 1
jb 0x527310
mov esi, eax
jmp 0x527310
mov edx, dword [esp + 0x10]
cmp al, 0x12
jne 0x5274d2
movzx eax, byte [esi + ebx + 0xf]
mov ecx, dword [esp]
cmp al, byte [ecx + ebx + 0xf]
jne 0x5273b4
movzx eax, byte [esi + ebx + 0x12]
mov ecx, dword [esp]
cmp al, byte [ecx + ebx + 0x12]
jne 0x5273b4
cmp eax, 0x12
je 0x52751e
cmp eax, 0x11
jne 0x527536
cmp al, 0x11
jne 0x527536
movzx eax, byte [esi + ebx + 0x13]
mov ecx, dword [esp]
cmp al, byte [ecx + ebx + 0x13]
jne 0x5273b4
movzx eax, byte [ecx + ebx + 0x14]
cmp byte [esi + ebx + 0x14], al
jne 0x5273b4
movzx eax, byte [esi + ebx + 0x15]
cmp al, byte [ecx + ebx + 0x15]
jmp 0x52752e
cmp al, 0x12
jne 0x527536
movzx eax, byte [esi + ebx + 0x13]
mov ecx, dword [esp]
cmp al, byte [ecx + ebx + 0x13]
mov cl, 1
jne 0x5273b6
movzx eax, word [esi + ebx + 0xc]
mov ecx, dword [esp]
cmp ax, word [ecx + ebx + 0xc]
setne cl
jmp 0x5273b6
mov ecx, dword [esp + 0x124]
mov eax, dword [esp + 0x120]
mov esi, dword [esp + 0x88]
mov dword [esp + 0x90], ecx
jmp 0x52757b
mov eax, dword [0x6d6b64]
xor esi, esi
mov dword [esp + 0x90], 0
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x24], ecx
shl esi, 3
xor ecx, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x7c], 0
jmp 0x52764f
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
push esi
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov ecx, dword [esp + 4]
mov dword [esp + 0x30], ecx
movzx eax, byte [esp + 0x37]
movzx esi, word [esp + 0x35]
mov edx, dword [esp + 0x31]
shl eax, 0x10
or esi, eax
mov eax, ecx
shld esi, edx, 8
shl edx, 8
movzx ecx, al
add dword [esp + 0x18], 8
mov eax, 0
or ecx, edx
test bl, bl
cmove esi, eax
mov eax, 4
cmove ecx, eax
mov edx, esi
call fcn.005fedb0
mov esi, dword [esp + 0x88]
mov ebx, eax
mov edi, edx
mov cl, 1
mov eax, dword [esp]
mov edx, dword [esp + 8]
add esi, 0xfffffff8
cmp bl, 4
jne 0x5282aa
mov edi, dword [esp + 0x18]
test esi, esi
je 0x528061
mov ebx, dword [edi + 4]
test ebx, ebx
je 0x528061
mov dword [esp + 0x88], esi
mov esi, dword [edi]
mov dword [esp + 0x28], ebx
mov dword [esp + 8], esi
shr esi, 0x10
test cl, 1
mov dword [esp], esi
lea esi, [esp + 0x158]
je 0x5276a0
inc edx
cmp dx, word [esp + 8]
jne 0x5276a0
cmp ax, word [esp]
je 0x5278e3
nop dword [eax + eax]
movzx eax, byte [0x6f1058]
cmp al, 1
jne 0x5277fa
movzx eax, byte [0x6f1059]
mov ecx, dword [esp + 4]
test al, al
je 0x527830
mov eax, dword [esp]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0x30], 0x6847b0
mov dword [esp + 0x34], 3
mov dword [esp + 0x38], 0
mov dword [esp + 0x40], esi
mov byte [esp + 0xbc], 4
mov dword [esp + 0x44], 2
lea ecx, [esp + 0x20c]
mov edx, 0x68475c
inc eax
mov word [esp + 0x114], ax
mov eax, dword [esp + 8]
lea eax, [eax + 1]
mov word [esp + 0x1e8], ax
lea eax, [esp + 0x114]
mov dword [esp + 0x158], eax
lea eax, [esp + 0x1e8]
mov dword [esp + 0x15c], 0x4647c0
mov dword [esp + 0x160], eax
lea eax, [esp + 0xb8]
mov dword [esp + 0x164], 0x4647c0
mov dword [esp + 0x20c], eax
lea eax, [esp + 0x30]
push eax
call fcn.0045b0f0
add esp, 4
mov ebx, dword [esp + 0xbc]
mov esi, dword [esp + 0xc0]
test al, al
je 0x5277a0
cmp bl, 4
je 0x528a76
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], ebx
jmp 0x5278ad
cmp bl, 3
jne 0x5277df
mov eax, dword [esi + 4]
push dword [esi]
call dword [eax]
add esp, 4
mov ecx, dword [esi + 4]
cmp dword [ecx + 4], 0
je 0x5277d1
mov eax, dword [esi]
cmp dword [ecx + 8], 9
jb 0x5277c3
mov eax, dword [eax - 4]
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
push esi
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 4]
xor edx, edx
mov ecx, 4
lea esi, [esp + 0x158]
mov dword [esp + 0x30], eax
jmp 0x5278d3
lea ecx, [esp + 0x30]
mov byte [esp + 0x158], 1
mov dword [esp + 0x30], esi
call fcn.005529a0
movzx eax, byte [0x6f1059]
mov ecx, dword [esp + 4]
test al, al
jne 0x5276c2
nop word cs:[eax + eax]
nop dword [eax]
mov edi, dword [ecx]
push edi
call sub.KERNEL32.dll_EnterCriticalSection
cmp dword [edi + 0x18], 0
jne 0x528a31
lea ecx, [edi + 0x1c]
mov dword [edi + 0x18], 0xffffffff
call fcn.005e2ca0
mov ebx, eax
mov esi, edx
mov eax, 0
mov ecx, 4
cmp bl, 4
cmove esi, eax
cmove ebx, ecx
inc dword [edi + 0x18]
push edi
call sub.KERNEL32.dll_LeaveCriticalSection
cmp bl, 4
jne 0x5278a5
mov ecx, dword [esp + 8]
mov edx, dword [esp]
call fcn.00465fa0
mov ebx, eax
lea esi, [esp + 0x158]
cmp bl, 4
jne 0x528023
mov eax, dword [esp + 4]
xor edx, edx
mov ecx, 4
mov dword [esp + 0x30], eax
jmp 0x5278d3
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], esi
lea esi, [esp + 0x158]
movzx eax, byte [esp + 0x37]
movzx edx, word [esp + 0x35]
mov edi, dword [esp + 0x31]
movzx ecx, bl
shl eax, 0x10
or edx, eax
shld edx, edi, 8
shl edi, 8
or ecx, edi
call fcn.005fedb0
mov ebx, eax
cmp bl, 4
jne 0x528030
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
movzx eax, word [edi + 0xc]
cmp ax, cx
je 0x527d86
mov edx, eax
mov eax, dword [esp + 4]
mov dword [esp + 0x10], edx
mov dword [esp + 0x158], eax
mov eax, edx
not eax
and eax, ecx
test al, 0x40
mov dword [esp + 0xc], eax
je 0x527958
mov edx, esi
lea ecx, [esp + 0x30]
push 0x10
call fcn.005047f0
add esp, 4
cmp dword [esp + 0x30], 1
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov eax, 0
cmovne edx, eax
mov eax, 4
cmovne ecx, eax
call fcn.005fedb0
mov ebx, eax
mov eax, dword [esp + 0xc]
cmp bl, 4
jne 0x528030
test al, 1
je 0x5279e9
mov edx, esi
lea ecx, [esp + 0x30]
push 0xc
call fcn.005047f0
add esp, 4
cmp dword [esp + 0x30], 1
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov eax, 0
cmovne edx, eax
mov eax, 4
cmovne ecx, eax
call fcn.005fedb0
mov ebx, eax
cmp bl, 4
jne 0x528030
test byte [esp + 0x10], 2
mov eax, dword [esp + 0xc]
je 0x5279e9
mov edx, esi
lea ecx, [esp + 0x30]
push 2
call fcn.005047f0
add esp, 4
cmp dword [esp + 0x30], 1
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov eax, 0
cmovne edx, eax
mov eax, 4
cmovne ecx, eax
call fcn.005fedb0
mov ebx, eax
mov eax, dword [esp + 0xc]
cmp bl, 4
jne 0x528030
test al, 4
je 0x527a2e
mov edx, esi
lea ecx, [esp + 0x30]
push 0xd
call fcn.005047f0
add esp, 4
cmp dword [esp + 0x30], 1
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov eax, 0
cmovne edx, eax
mov eax, 4
cmovne ecx, eax
call fcn.005fedb0
mov ebx, eax
mov eax, dword [esp + 0xc]
cmp bl, 4
jne 0x528030
test al, 8
je 0x527a73
mov edx, esi
lea ecx, [esp + 0x30]
push 0xe
call fcn.005047f0
add esp, 4
cmp dword [esp + 0x30], 1
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov eax, 0
cmovne edx, eax
mov eax, 4
cmovne ecx, eax
call fcn.005fedb0
mov ebx, eax
mov eax, dword [esp + 0xc]
cmp bl, 4
jne 0x528030
test al, 2
je 0x527ab8
mov edx, esi
lea ecx, [esp + 0x30]
push 0xc
call fcn.005047f0
add esp, 4
cmp dword [esp + 0x30], 1
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov eax, 0
cmovne edx, eax
mov eax, 4
cmovne ecx, eax
call fcn.005fedb0
mov ebx, eax
mov eax, dword [esp + 0xc]
cmp bl, 4
jne 0x528030
test eax, 0x100
je 0x527b00
mov edx, esi
lea ecx, [esp + 0x30]
push 0x12
call fcn.005047f0
add esp, 4
cmp dword [esp + 0x30], 1
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov eax, 0
cmovne edx, eax
mov eax, 4
cmovne ecx, eax
call fcn.005fedb0
mov ebx, eax
mov eax, dword [esp + 0xc]
cmp bl, 4
jne 0x528030
test al, 0x30
je 0x527b41
mov edx, esi
lea ecx, [esp + 0x30]
push 0xf
call fcn.005047f0
add esp, 4
cmp dword [esp + 0x30], 1
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov eax, 0
cmovne edx, eax
mov eax, 4
cmovne ecx, eax
call fcn.005fedb0
mov ebx, eax
cmp bl, 4
jne 0x528030
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
not eax
and ecx, eax
mov eax, ecx
mov dword [esp + 0x10], ecx
test al, 0x40
je 0x527b98
mov edx, esi
lea ecx, [esp + 0x30]
push 7
call fcn.005047f0
add esp, 4
cmp dword [esp + 0x30], 1
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov eax, 0
cmovne edx, eax
mov eax, 4
cmovne ecx, eax
call fcn.005fedb0
mov ebx, eax
mov eax, dword [esp + 0x10]
cmp bl, 4
jne 0x528030
test al, 1
je 0x527bdd
mov edx, esi
lea ecx, [esp + 0x30]
push 1
call fcn.005047f0
add esp, 4
cmp dword [esp + 0x30], 1
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov eax, 0
cmovne edx, eax
mov eax, 4
cmovne ecx, eax
call fcn.005fedb0
mov ebx, eax
mov eax, dword [esp + 0x10]
cmp bl, 4
jne 0x528030
test al, 4
je 0x527c22
mov edx, esi
lea ecx, [esp + 0x30]
push 3
call fcn.005047f0
add esp, 4
cmp dword [esp + 0x30], 1
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov eax, 0
cmovne edx, eax
mov eax, 4
cmovne ecx, eax
call fcn.005fedb0
mov ebx, eax
mov eax, dword [esp + 0x10]
cmp bl, 4
jne 0x528030
test al, 8
je 0x527c67
mov edx, esi
lea ecx, [esp + 0x30]
push 4
call fcn.005047f0
add esp, 4
cmp dword [esp + 0x30], 1
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov eax, 0
cmovne edx, eax
mov eax, 4
cmovne ecx, eax
call fcn.005fedb0
mov ebx, eax
mov eax, dword [esp + 0x10]
cmp bl, 4
jne 0x528030
test al, 2
je 0x527cac
mov edx, esi
lea ecx, [esp + 0x30]
push 2
call fcn.005047f0
add esp, 4
cmp dword [esp + 0x30], 1
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov eax, 0
cmovne edx, eax
mov eax, 4
cmovne ecx, eax
call fcn.005fedb0
mov ebx, eax
mov eax, dword [esp + 0x10]
cmp bl, 4
jne 0x528030
test eax, 0x100
je 0x527cf4
mov edx, esi
lea ecx, [esp + 0x30]
push 9
call fcn.005047f0
add esp, 4
cmp dword [esp + 0x30], 1
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov eax, 0
cmovne edx, eax
mov eax, 4
cmovne ecx, eax
call fcn.005fedb0
mov ebx, eax
mov eax, dword [esp + 0x10]
cmp bl, 4
jne 0x528030
test al, 0x10
je 0x527d39
mov edx, esi
lea ecx, [esp + 0x30]
push 5
call fcn.005047f0
add esp, 4
cmp dword [esp + 0x30], 1
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov eax, 0
cmovne edx, eax
mov eax, 4
cmovne ecx, eax
call fcn.005fedb0
mov ebx, eax
mov eax, dword [esp + 0x10]
cmp bl, 4
jne 0x528030
test al, 0x20
je 0x527d7a
mov edx, esi
lea ecx, [esp + 0x30]
push 6
call fcn.005047f0
add esp, 4
cmp dword [esp + 0x30], 1
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov eax, 0
cmovne edx, eax
mov eax, 4
cmovne ecx, eax
call fcn.005fedb0
mov ebx, eax
cmp bl, 4
jne 0x528030
mov edi, dword [esp + 0x28]
movzx eax, word [edi + 0xc]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 4]
cmp byte [edi + 0xe], cl
jne 0x527df0
cmp cl, 0x11
je 0x527daa
cmp cl, 0x12
jne 0x527dd0
mov eax, dword [esp + 0x24]
mov cl, 0x12
cmp byte [edi + 0xf], ah
jne 0x527df0
jmp 0x527dd0
mov eax, dword [esp + 0x24]
cmp byte [edi + 0xf], ah
jne 0x527df0
mov eax, dword [esp + 0x80]
cmp byte [edi + 0x10], al
jne 0x527df0
mov eax, dword [esp + 0x2c]
mov cl, 0x11
cmp byte [edi + 0x11], al
jne 0x527df0
nop word [eax + eax]
mov eax, dword [esp + 0x84]
mov dword [esp + 0x7c], ecx
cmp byte [edi + 0x12], al
je 0x527e77
jmp 0x527ec0
mov eax, dword [edi + 0xe]
movsx ecx, al
and eax, 0xffffff00
or eax, dword [ecx*4 + 0x6dd810]
lea ecx, [esp + 0x30]
push eax
call fcn.00504d10
add esp, 4
cmp dword [esp + 0x30], 1
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov eax, 0
cmovne edx, eax
mov eax, 4
cmovne ecx, eax
call fcn.005fedb0
mov ebx, eax
cmp bl, 4
jne 0x5280cb
mov eax, dword [edi + 0xe]
mov edx, dword [esp + 4]
mov esi, edi
lea esi, [esp + 0x158]
mov ecx, eax
mov dword [esp + 0x24], eax
shr ecx, 0x10
mov dword [esp + 0x80], ecx
mov ecx, eax
shr ecx, 0x18
mov dword [esp + 0x2c], ecx
mov ecx, eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x7c], ecx
cmp byte [edi + 0x12], al
jne 0x527ec0
cmp al, 0x11
je 0x527e96
cmp al, 0x12
jne 0x527f3b
mov eax, dword [esp + 0x8c]
cmp byte [edi + 0x13], ah
mov al, 0x12
jne 0x527ec0
jmp 0x527f3b
mov eax, dword [esp + 0x8c]
cmp byte [edi + 0x13], ah
jne 0x527ec0
mov eax, dword [esp + 0x98]
cmp byte [edi + 0x14], al
jne 0x527ec0
mov eax, dword [esp + 0x94]
cmp byte [edi + 0x15], al
mov al, 0x11
je 0x527f3b
mov eax, dword [edi + 0x12]
movsx ecx, al
and eax, 0xffffff00
or eax, dword [ecx*4 + 0x6dd85c]
lea ecx, [esp + 0x30]
push eax
call fcn.005049f0
add esp, 4
cmp dword [esp + 0x30], 1
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov eax, 0
cmovne edx, eax
mov eax, 4
cmovne ecx, eax
call fcn.005fedb0
mov ebx, eax
cmp bl, 4
jne 0x5280cb
mov eax, dword [edi + 0x12]
mov esi, edi
lea esi, [esp + 0x158]
mov edx, eax
mov ecx, eax
mov dword [esp + 0x8c], eax
shr edx, 0x18
shr ecx, 0x10
mov dword [esp + 0x94], edx
mov edx, dword [esp + 4]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x84], eax
lea eax, [esp + 0x1e8]
mov dword [esp + 0x30], 0x6d4414
mov dword [esp + 0x34], 1
mov dword [esp + 0x38], 0
mov dword [esp + 0x158], edx
mov dword [esp + 0x1e8], edi
mov byte [esp + 0x15c], 4
mov dword [esp + 0x20c], esi
lea ecx, [esp + 0x20c]
mov edx, 0x68475c
mov dword [esp + 0xb8], eax
lea eax, [esp + 0xb8]
mov dword [esp + 0xbc], 0x55cec0
mov dword [esp + 0x40], eax
lea eax, [esp + 0x30]
mov dword [esp + 0x44], 1
push eax
call fcn.0045b0f0
add esp, 4
mov ebx, eax
mov eax, dword [esp + 0x15c]
mov esi, dword [esp + 0x160]
test bl, bl
je 0x527ff0
cmp al, 4
je 0x528a57
mov edx, eax
and edx, 0xffffff00
jmp 0x52760c
cmp al, 3
jne 0x5275e8
mov eax, dword [esi + 4]
push dword [esi]
call dword [eax]
add esp, 4
mov ecx, dword [esi + 4]
cmp dword [ecx + 4], 0
je 0x5275da
mov eax, dword [esi]
cmp dword [ecx + 8], 9
jb 0x5275cc
mov eax, dword [eax - 4]
jmp 0x5275cc
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], edx
jmp 0x5278b4
mov eax, dword [esp + 0x1c]
mov edi, edx
mov ecx, dword [esp + 0x90]
test ecx, 0x1fffffff
je 0x528053
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
cmp bl, 4
je 0x52854c
jmp 0x52882d
test dword [esp + 0x90], 0x1fffffff
je 0x52807f
push dword [esp + 0x1c]
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov edx, dword [esp + 4]
lea esi, [esp + 0x30]
mov ecx, esi
push 0
call fcn.00504d10
add esp, 4
cmp dword [esp + 0x30], 1
jne 0x52817c
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
lea esi, [esp + 0x158]
jmp 0x52853a
mov ecx, 0x6843a0
mov edx, 0x19
push 0x6845ac
call fcn.0045aec0
add esp, 4
ud2
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x90]
mov edi, edx
lea esi, [esp + 0x158]
test ecx, 0x1fffffff
jne 0x528045
jmp 0x528053
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0xc]
xor ebx, ebx
lea ecx, [esi + 8]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x24]
jmp 0x528127
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x2c]
test ecx, ecx
lea ecx, [ecx + 1]
je 0x5281b9
cmp ecx, edx
je 0x52884b
mov dword [esp + 0x24], ecx
lea ecx, [ecx + ecx*2]
add edi, dword [esi + ecx*8 + 8]
mov ecx, 0xffffffff
cmovb edi, ecx
cmp edi, eax
jbe 0x528110
cmp ebx, edx
mov ecx, edx
mov edx, dword [esp + 0x10]
lea esi, [ebx + ebx*2]
cmova ecx, ebx
lea esi, [edx + esi*8]
nop word [eax + eax]
cmp ecx, ebx
je 0x5283b0
sub edi, dword [esi]
mov edx, 0
cmovb edi, edx
inc ebx
add esi, 0x18
cmp edi, eax
ja 0x528160
jmp 0x528110
mov edx, dword [esp + 0x34]
lea ecx, [esp + 0xb8]
push 0
call fcn.005049f0
add esp, 4
cmp dword [esp + 0xb8], 1
jne 0x5282cd
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0xc0]
lea esi, [esp + 0x158]
jmp 0x52853a
test ebx, ebx
je 0x5283a3
lea ecx, [ebx - 1]
mov dword [esp + 0x24], 1
mov dword [esp + 0x10], ecx
lea ecx, [esi - 0x10]
mov dword [esp + 8], ecx
jmp 0x5281f8
mov edx, dword [esp + 0x24]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x2c]
test ebx, ebx
je 0x52839c
dec ebx
cmp dword [esp + 0x10], edx
jae 0x5288f7
lea ecx, [ebx + ebx*2]
add edi, dword [esi + ecx*8 + 8]
mov ecx, 0xffffffff
cmovb edi, ecx
cmp edi, eax
jbe 0x5281e0
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 8]
lea ecx, [edx + edx*2]
lea esi, [esi + ecx*8]
mov ecx, edx
nop word cs:[eax + eax]
lea edx, [ecx - 1]
cmp dword [esp + 0xc], edx
jbe 0x528433
sub edi, dword [esi]
mov ecx, 0
cmovb edi, ecx
add esi, 0xffffffe8
mov ecx, edx
cmp edi, eax
ja 0x528230
jmp 0x5281e4
mov edx, 2
push 0x684e40
call fcn.0045a150
add esp, 4
ud2
mov edx, dword [esp]
push 0x6d6934
call fcn.0045a150
add esp, 4
ud2
mov ecx, edi
push 0x685670
call fcn.0045a150
add esp, 4
ud2
lea ecx, [esp + 0x1b8]
mov edx, esi
call fcn.00557280
mov ecx, dword [esp + 0x1b8]
mov edi, dword [esp + 0x1c0]
jmp 0x525e2c
mov eax, dword [esp + 0x1c]
lea esi, [esp + 0x158]
mov ecx, dword [esp + 0x90]
test ecx, 0x1fffffff
jne 0x528045
jmp 0x528053
mov edi, dword [esp + 0xbc]
mov al, byte [0x6f1058]
cmp al, 1
jne 0x528486
mov al, byte [0x6f1059]
mov dword [esp + 0x10], edi
test al, al
je 0x5284b3
lea eax, [esp + 0x114]
mov dword [esp + 0x158], edi
lea edi, [esp + 0x1e8]
mov dword [esp + 0x30], 0x620634
mov dword [esp + 0x34], 2
mov byte [esp + 0x15c], 4
mov word [esp + 0x114], 0
mov dword [esp + 0x38], 0
mov edx, 0x68475c
mov dword [esp + 0x20c], eax
lea eax, [esp + 0x158]
mov dword [esp + 0x210], 0x460fe0
mov ecx, edi
mov dword [esp + 0x1e8], eax
lea eax, [esp + 0x20c]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], 1
push esi
call fcn.0045b0f0
add esp, 4
mov ebx, dword [esp + 0x15c]
mov esi, dword [esp + 0x160]
test al, al
je 0x5283c3
cmp bl, 4
je 0x528b30
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], ebx
jmp 0x528505
xor ebx, ebx
jmp 0x526d3e
mov dword [esp + 0x24], 1
jmp 0x526d3e
mov edx, dword [esp + 0xc]
push 0x6d8f08
call fcn.0045a150
add esp, 4
ud2
cmp bl, 3
mov ebx, dword [esp + 0x10]
lea edi, [esp + 0x158]
jne 0x52840d
mov eax, dword [esi + 4]
push dword [esi]
call dword [eax]
add esp, 4
mov ecx, dword [esi + 4]
cmp dword [ecx + 4], 0
je 0x5283ff
mov eax, dword [esi]
cmp dword [ecx + 8], 9
jb 0x5283f1
mov eax, dword [eax - 4]
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
push esi
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov dword [esp + 0x30], ebx
xor eax, eax
mov esi, edi
jmp 0x52850e
mov ecx, 0x6843a0
mov edx, 0x19
push 0x68459c
call fcn.0045aec0
add esp, 4
ud2
mov edx, dword [esp + 0xc]
dec ecx
push 0x6d8f28
call fcn.0045a150
add esp, 4
ud2
mov ecx, edi
push 0x685660
call fcn.0045a150
add esp, 4
ud2
mov ecx, str.attempt_to_calculate_the_remainder_with_a_divisor_of_zero
mov edx, 0x39
push 0x6d69ac
call fcn.0045aec0
add esp, 4
ud2
mov ecx, edx
mov edx, dword [esp + 0xc]
push 0x6d69bc
call fcn.0045a150
add esp, 4
ud2
lea eax, [esp + 0x158]
lea ecx, [esp + 0x30]
mov byte [esp + 0x158], 1
mov dword [esp + 0x30], eax
call fcn.005529a0
mov al, byte [0x6f1059]
mov dword [esp + 0x10], edi
test al, al
jne 0x5282f2
mov esi, dword [edi]
push esi
call sub.KERNEL32.dll_EnterCriticalSection
cmp dword [esi + 0x18], 0
jne 0x528a31
lea ecx, [esi + 0x1c]
mov dword [esi + 0x18], 0xffffffff
call fcn.005e2ca0
xor edi, edi
cmp al, 4
mov ebx, 4
cmovne edi, edx
cmovne ebx, eax
inc dword [esi + 0x18]
push esi
call sub.KERNEL32.dll_LeaveCriticalSection
cmp bl, 4
jne 0x5284fd
mov ebx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x30], ebx
jmp 0x528507
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], edi
mov al, 1
lea esi, [esp + 0x158]
test al, al
je 0x528533
movzx eax, byte [esp + 0x37]
movzx edx, word [esp + 0x35]
mov edi, dword [esp + 0x31]
movzx ecx, bl
shl eax, 0x10
or edx, eax
shld edx, edi, 8
shl edi, 8
or ecx, edi
jmp 0x52853a
xor edx, edx
mov ecx, 4
call fcn.005fedb0
mov ebx, eax
mov edi, edx
cmp bl, 4
jne 0x52882d
mov al, byte [0x6f1058]
cmp al, 1
jne 0x52860c
mov al, byte [0x6f1059]
test al, al
mov eax, dword [esp + 4]
je 0x528632
mov edi, dword [eax]
push edi
call sub.KERNEL32.dll_EnterCriticalSection
mov ecx, edi
mov edx, 0x6847a4
push 6
call fcn.005e2f80
add esp, 4
mov ebx, eax
mov esi, edx
push edi
call sub.KERNEL32.dll_LeaveCriticalSection
mov eax, ebx
mov ebx, 4
cmp al, 4
cmovne ebx, eax
jne 0x5285e3
cmp bl, 3
jne 0x5285da
mov eax, dword [esi + 4]
push dword [esi]
call dword [eax]
add esp, 4
mov ecx, dword [esi + 4]
cmp dword [ecx + 4], 0
je 0x5285cc
mov eax, dword [esi]
cmp dword [ecx + 8], 9
jb 0x5285be
mov eax, dword [eax - 4]
push eax
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
push esi
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 4]
jmp 0x528682
cmp bl, 4
je 0x528ae0
mov dword [esp + 0x124], esi
mov dword [esp + 0x120], ebx
mov eax, dword [esp + 4]
cmp bl, 4
je 0x528689
jmp 0x5286f0
lea ecx, [esp + 0x30]
mov byte [esp + 0x158], 1
mov dword [esp + 0x30], esi
call fcn.005529a0
mov al, byte [0x6f1059]
test al, al
mov eax, dword [esp + 4]
jne 0x52856a
mov esi, dword [eax]
push esi
call sub.KERNEL32.dll_EnterCriticalSection
cmp dword [esi + 0x18], 0
jne 0x528a31
lea ecx, [esi + 0x1c]
mov dword [esi + 0x18], 0xffffffff
call fcn.005e2ca0
xor edi, edi
cmp al, 4
mov ebx, 4
cmovne edi, edx
cmovne ebx, eax
inc dword [esi + 0x18]
push esi
call sub.KERNEL32.dll_LeaveCriticalSection
cmp bl, 4
jne 0x5286c4
xor ecx, ecx
call fcn.00465f20
mov ebx, eax
mov eax, dword [esp + 4]
cmp bl, 4
jne 0x5286dd
mov dword [esp + 0x120], eax
mov ebx, dword [eax]
push ebx
call sub.KERNEL32.dll_EnterCriticalSection
cmp dword [ebx + 0x18], 0
jne 0x528a31
lea ecx, [ebx + 0x1c]
mov dword [ebx + 0x18], 0xffffffff
call fcn.005e2ca0
xor esi, esi
cmp al, 4
mov edi, 4
cmovne esi, edx
cmovne edi, eax
inc dword [ebx + 0x18]
push ebx
call sub.KERNEL32.dll_LeaveCriticalSection
jmp 0x528718
mov dword [esp + 0x120], ebx
mov dword [esp + 0x124], edi
mov eax, dword [esp + 4]
cmp bl, 4
jne 0x5286f0
jmp 0x528689
mov dword [esp + 0x120], ebx
mov dword [esp + 0x124], edx
cmp bl, 4
je 0x528689
movzx ecx, byte [esp + 0x127]
movzx esi, word [esp + 0x125]
mov edi, dword [esp + 0x121]
movzx eax, bl
shl ecx, 0x10
or esi, ecx
shld esi, edi, 8
shl edi, 8
or edi, eax
mov ecx, edi
mov edx, esi
call fcn.005fedb0
mov ebx, dword [esp + 0xb4]
cmp al, 4
jne 0x52879f
mov esi, dword [esp + 4]
mov ecx, 1
mov byte [esi + 0x3a], 1
sub ecx, dword [esi + 0x2c]
cmp ecx, 2
jae 0x5289bc
lea edx, [ecx + ecx*4]
mov eax, dword [esi + edx*4 + 0xc]
test eax, eax
je 0x5287b6
mov esi, dword [esi + edx*4 + 4]
shl eax, 3
lea edi, [eax + eax*2]
jmp 0x52877f
mov ecx, dword [esi]
mov byte [ecx + eax], 0x20
inc dword [esi + 8]
mov byte [esi + 0xe], 0
mov byte [esi + 0x12], 0
mov word [esi + 0xc], 0
add esi, 0x18
add edi, 0xffffffe8
je 0x5287aa
mov dword [esi + 8], 0
mov eax, 0
cmp dword [esi + 4], 0
jne 0x528760
mov ecx, esi
xor edx, edx
call fcn.005bab80
mov eax, dword [esi + 8]
jmp 0x528760
mov dword [ebx + 4], eax
mov dword [ebx + 8], edx
jmp 0x52883c
mov esi, dword [esp + 4]
mov ecx, 1
sub ecx, dword [esi + 0x2c]
mov dword [esi + 0x2c], ecx
mov esi, dword [esi]
push esi
call sub.KERNEL32.dll_EnterCriticalSection
cmp dword [esi + 0x18], 0
jne 0x528a31
lea ecx, [esi + 0x1c]
mov dword [esi + 0x18], 0xffffffff
call fcn.005e2ca0
xor edi, edi
cmp al, 4
mov ebx, 4
cmovne edi, edx
cmovne ebx, eax
inc dword [esi + 0x18]
push esi
call sub.KERNEL32.dll_LeaveCriticalSection
cmp bl, 4
jne 0x52882d
mov edx, dword [esp + 4]
mov ecx, 1
sub ecx, dword [edx + 0x2c]
cmp ecx, 2
jae 0x5289d7
lea eax, [ecx + ecx*4]
mov ecx, dword [edx + 0x30]
mov ebx, dword [esp + 0xb4]
lea eax, [edx + eax*4 + 4]
mov edx, dword [edx + 0x34]
mov dword [ebx + 4], eax
mov dword [ebx + 8], ecx
xor eax, eax
mov dword [ebx + 0xc], edx
jmp 0x528841
mov eax, dword [esp + 0xb4]
mov dword [eax + 4], ebx
mov ebx, eax
mov dword [eax + 8], edi
mov eax, 1
mov dword [ebx], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, edx
push 0x6d8ef8
call fcn.0045a150
add esp, 4
ud2
xor ecx, ecx
xor edx, edx
push 0x6855b4
call fcn.0045a150
add esp, 4
ud2
mov ecx, 1
push 0x6855d0
call fcn.0045a150
add esp, 4
ud2
mov ecx, 2
push 0x6855f8
call fcn.0045a150
add esp, 4
ud2
xor ecx, ecx
xor edx, edx
push 0x685608
call fcn.0045a150
add esp, 4
ud2
xor ecx, ecx
xor edx, edx
push 0x685618
call fcn.0045a150
add esp, 4
ud2
xor ecx, ecx
xor edx, edx
push 0x685630
call fcn.0045a150
add esp, 4
ud2
mov ecx, 2
push 0x685640
call fcn.0045a150
add esp, 4
ud2
xor ecx, ecx
xor edx, edx
push 0x685650
call fcn.0045a150
add esp, 4
ud2
mov ecx, ebx
push 0x6d8f18
call fcn.0045a150
add esp, 4
ud2
mov ecx, 1
push 0x685680
call fcn.0045a150
add esp, 4
ud2
mov ecx, 1
push 0x685698
call fcn.0045a150
add esp, 4
ud2
mov ecx, eax
mov edx, 2
push 0x684e80
call fcn.0045a150
add esp, 4
ud2
mov edx, 2
push 0x684e90
call fcn.0045a150
add esp, 4
ud2
mov edx, 2
push 0x684ea0
call fcn.0045a150
add esp, 4
ud2
mov edx, 2
push 0x684eb0
call fcn.0045a150
add esp, 4
ud2
mov ecx, str.a_formatting_trait_implementation_returned_an_errorlibrary_alloc_src_fmt.rs
mov edx, 0x33
push 0x6083e8
push 0x608360
lea eax, [esp + 0xac]
push eax
call fcn.0045d480
add esp, 0xc
ud2
mov edx, 2
push 0x684e70
call fcn.0045a150
add esp, 4
ud2
mov edx, 2
push 0x684e50
call fcn.0045a150
add esp, 4
ud2
call fcn.0040a620
ud2
mov edx, 2
push 0x684e60
call fcn.0045a150
add esp, 4
ud2
mov ecx, ebx
jmp 0x528a25
mov ecx, ebx
mov edx, 1
call fcn.0040a640
ud2
mov ecx, edx
mov edx, ebx
push 0x6845bc
push ebx
push eax
call fcn.0045d720
add esp, 0xc
ud2
mov ecx, 0xc
jmp 0x528a25
mov ecx, 0x24
jmp 0x528a25
mov ecx, 0x18
mov edx, 4
call fcn.0040a640
ud2
lea eax, [esp + 0xa4]
mov ecx, str.already_borrowed_
mov edx, 0x10
push 0x6d4848
push 0x6d3868
push eax
call fcn.0045d480
add esp, 0xc
ud2
mov dword [esp + 0xb8], str.crossterm::style::Print_alloc::string::String_crossterm::cursor::Hidecrossterm::style::SetForegroundColorcrossterm::style::SetAttributecrossterm::terminal::Clearcrossterm::cursor::MoveTocrossterm::style::SetBackgroundColor
mov dword [esp + 0xbc], 0x2f
lea eax, [esp + 0xb8]
jmp 0x528a93
lea eax, [esp + 0x158]
mov dword [esp + 0x158], 0x684706
mov dword [esp + 0x15c], 0x19
mov dword [esp + 0x20c], eax
lea eax, [esp + 0x20c]
mov dword [esp + 0x30], 0x6847fc
mov dword [esp + 0x34], 2
mov dword [esp + 0x210], 0x5c1350
mov dword [esp + 0x38], 0
mov dword [esp + 0x40], eax
lea ecx, [esp + 0x30]
mov edx, 0x68485c
mov dword [esp + 0x44], 1
call fcn.0045a2c0
ud2
lea eax, [esp + 0x158]
mov dword [esp + 0x158], 0x684693
mov dword [esp + 0x30], 0x6847fc
mov dword [esp + 0x34], 2
mov dword [esp + 0x15c], 0x17
mov dword [esp + 0x38], 0
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], 0x5c1350
lea eax, [esp + 0xb8]
jmp 0x528ac4
lea eax, [esp + 0x20c]
mov dword [esp + 0x20c], 0x6846ce
mov dword [esp + 0x30], 0x6847fc
mov dword [esp + 0x34], 2
mov dword [esp + 0x38], 0
mov dword [esp + 0x210], 0x1e
mov dword [esp + 0x40], edi
mov dword [esp + 0x1e8], eax
mov dword [esp + 0x1ec], 0x5c1350
jmp 0x528ac8