Function at 0x537c90
Capabilities:
Access peb ldr_data
Check os version
Get kernel32 base address
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x9d8
mov esi, esp
mov dword [esi + 0x9c0], ebp
lea eax, [esi + 0x9c8]
mov dword [esi + 0x7c], ecx
mov dword [esi + 0xec], edx
mov dword [eax - 4], esp
or dword [eax + 8], 0xffffffff
mov dword [eax + 4], 0x586990
mov ecx, dword fs:[0]
mov dword [eax], ecx
mov dword fs:[0], eax
and dword [esi + 0xd8], 0
mov cl, 1
mov byte [esi + 5], cl
mov byte [esi + 6], cl
mov byte [esi + 7], cl
push 2
pop ecx
mov dword [eax + 8], ecx
mov eax, dword [ebp + 8]
lea edx, [esi + 0x158]
mov dword [esi + 0xdc], ecx
and dword [esi + 0x100], 0
mov dword [esi + 0x104], 4
and dword [esi + 0xe0], 0
and dword [esi + 0x108], 0
mov dword [esi + 8], ecx
lea ecx, [esi + 0x380]
and dword [edx + 0x24], 0
and dword [edx + 0x20], 0
mov dword [edx + 0x28], eax
mov byte [edx + 0x30], 0xf
and dword [edx + 4], 0
mov dword [edx], 1
and dword [edx + 0xc], 0
mov dword [edx + 8], 0x20000000
and dword [edx + 0x10], 0
and dword [edx + 0x18], 0
call 0x537d53
pop eax
mov dword [esi + 0x1c], eax
call fcn.0053bc39
mov eax, dword [esi + 0x380]
xor eax, 2
or eax, dword [esi + 0x384]
jne 0x537d93
mov cl, 1
mov eax, dword [esi + 0x38c]
mov edx, dword [esi + 0x388]
mov byte [esi + 5], cl
mov byte [esi + 6], cl
mov byte [esi + 7], cl
mov ecx, dword [esi + 0x7c]
push eax
call fcn.0053bf82
pop eax
jmp 0x538342
movzx ecx, byte [esi + 0x3b0]
mov edx, dword [esi + 0x3a0]
mov eax, dword [esi + 0x3a4]
mov edi, dword [esi + 0x3a8]
cmp ecx, 0xf
mov byte [esi + 0x85], cl
jne 0x537dcc
push 4
pop ebx
mov edi, 0x80000003
push 3
pop edx
mov eax, 0x800000
jmp 0x53828b
and dword [esi + 0x768], 0
and dword [esi + 0x770], 0
and dword [esi + 0x75c], 0
mov dword [esi + 0x758], 1
and dword [esi + 0x764], 0
test ecx, ecx
mov dword [esi + 0x760], 0x20000000
je 0x537fc8
cmp ecx, 1
je 0x537f1b
cmp ecx, 2
jne 0x538056
mov cl, 1
mov byte [esi + 5], cl
mov byte [esi + 6], cl
mov byte [esi + 7], cl
lea ecx, [esi + 0x380]
push edi
push eax
call fcn.0053c270
pop eax
pop ecx
mov ecx, dword [esi + 0x380]
mov ebx, dword [esi + 0x384]
mov eax, ecx
xor eax, 2
or eax, ebx
je 0x537ff9
lea eax, [esi + 0x3b0]
mov dword [esi + 0x78], ecx
mov edx, dword [eax - 0x28]
movsd xmm0, qword [eax - 0x10]
mov ecx, dword [eax - 0x18]
mov edi, dword [eax - 0x20]
mov dword [esi + 0xc], edx
mov edx, dword [eax - 0x24]
movsd qword [esi + 0x638], xmm0
movsd xmm0, qword [eax - 8]
mov dword [esi + 0x10], edi
mov dword [esi + 0x34], ecx
lea edi, [esi + 0x188]
mov dword [esi + 0x14], edx
mov edx, dword [eax - 0x1c]
movsd qword [esi + 0x640], xmm0
mov dword [esi + 0x30], edx
mov edx, dword [eax - 0x14]
mov dword [esi + 0x18], edx
push 0xd8
push eax
push edi
call fcn.0058a110
add esp, 0xc
mov eax, dword [esi + 0x78]
mov dword [edi - 0x2c], ebx
movsd xmm0, qword [esi + 0x638]
movsd xmm1, qword [esi + 0x640]
lea ecx, [esi + 0x178]
mov bl, 1
mov byte [esi + 5], bl
mov byte [esi + 6], bl
mov byte [esi + 7], bl
mov dword [edi - 0x30], eax
mov eax, dword [esi + 0xc]
mov dword [edi - 0x28], eax
mov eax, dword [esi + 0x14]
mov dword [edi - 0x24], eax
mov eax, dword [esi + 0x10]
mov dword [edi - 0x20], eax
mov eax, dword [esi + 0x34]
mov dword [edi - 0x18], eax
mov eax, dword [esi + 0x30]
mov dword [edi - 0x1c], eax
mov eax, dword [esi + 0x18]
mov dword [edi - 0x14], eax
movsd qword [ecx], xmm0
movsd qword [ecx + 8], xmm1
movzx eax, word [ecx + 0xb8]
movzx edx, word [ecx + 0xba]
mov word [esi + 0x14], ax
mov dword [esi + 0xc], edx
call fcn.0052f4a9
jmp 0x538196
mov cl, 1
mov byte [esi + 5], cl
mov byte [esi + 6], cl
mov byte [esi + 7], cl
lea ecx, [esi + 0x380]
push edi
push eax
call fcn.0053d53c
pop eax
pop ecx
mov ecx, dword [esi + 0x390]
mov edi, dword [esi + 0x38c]
movsd xmm0, qword [esi + 0x398]
mov ebx, dword [esi + 0x42c]
mov eax, dword [esi + 0x380]
mov edx, dword [esi + 0x384]
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], edi
mov ecx, dword [esi + 0x388]
movsd qword [esi + 0x638], xmm0
movsd xmm0, qword [esi + 0x3a0]
mov edi, dword [esi + 0x394]
cmp ebx, 0x80000000
mov dword [esi + 0x14], eax
movsd qword [esi + 0x640], xmm0
mov dword [esi + 0xc], ecx
jne 0x5380d0
mov eax, dword [esi + 0x34]
movsd xmm0, qword [esi + 0x638]
movsd xmm1, qword [esi + 0x640]
mov ebx, dword [esi + 0x14]
mov dword [esi + 0x12c], eax
mov eax, dword [esi + 0x30]
movsd qword [esi + 0x570], xmm0
movsd qword [esi + 0x578], xmm1
jmp 0x538046
mov cl, 1
lea ebx, [esi + 0x758]
mov byte [esi + 5], cl
mov byte [esi + 6], cl
mov byte [esi + 7], cl
lea ecx, [esi + 0x380]
push ebx
push edi
push eax
call fcn.0053ca2c
add esp, 0xc
mov edi, dword [esi + 0x380]
cmp edi, 2
jne 0x53819f
mov eax, dword [esi + 0x390]
mov edx, dword [esi + 0x38c]
movsd xmm0, qword [esi + 0x3a8]
movsd xmm1, qword [esi + 0x3a0]
mov ebx, dword [esi + 0x388]
mov edi, dword [esi + 0x39c]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x398]
movsd qword [esi + 0x570], xmm1
movsd qword [esi + 0x578], xmm0
mov dword [esi + 0x12c], eax
mov eax, dword [esi + 0x394]
mov dword [esi + 0x128], eax
mov eax, edx
shr eax, 8
jmp 0x53828b
lea edx, [esi + 0x380]
mov al, 1
mov byte [edx + 4], cl
lea ecx, [esi + 0x158]
mov dword [edx], 0x80000000
mov byte [esi + 5], al
mov byte [esi + 6], al
mov byte [esi + 7], al
call fcn.00459ee4
mov edi, dword [esi + 0x174]
mov eax, dword [esi + 0x15c]
mov edx, dword [esi + 0x158]
mov ecx, dword [esi + 0x164]
mov ebx, dword [esi + 0x160]
movsd xmm0, qword [esi + 0x16c]
mov dword [esi + 0x578], edi
mov edi, dword [esi + 0x168]
mov dword [esi + 0xc], eax
mov eax, edx
mov dword [esi + 0x12c], ecx
mov dword [esi + 0x128], ebx
movsd qword [esi + 0x570], xmm0
shr eax, 8
push 4
jmp 0x53828a
mov dword [esi + 0x18], ebx
lea ebx, [esi + 0x180]
push 0x84
lea ecx, [esi + 0x3a8]
push ecx
push ebx
mov dword [esi + 0x10], edx
call fcn.0058a110
add esp, 0xc
lea eax, [esi + 0x3a8]
movsd xmm0, qword [eax + 0x88]
movsd xmm1, qword [eax + 0x90]
movsd xmm2, qword [eax + 0x98]
mov eax, dword [esi + 0x14]
movsd qword [ebx + 0x88], xmm0
movsd qword [ebx + 0x90], xmm1
movsd qword [ebx + 0x98], xmm2
mov dword [ebx - 0x28], eax
mov eax, dword [esi + 0x10]
movsd xmm0, qword [esi + 0x638]
movsd xmm1, qword [esi + 0x640]
mov dword [ebx - 0x24], eax
mov eax, dword [esi + 0xc]
mov dword [ebx - 0x20], eax
mov eax, dword [esi + 0x34]
mov dword [ebx - 0x18], eax
mov eax, dword [esi + 0x30]
mov dword [ebx - 0x1c], eax
mov eax, dword [esi + 0x18]
mov dword [ebx - 0x14], edi
movsd qword [ebx - 0x10], xmm0
movsd qword [ebx - 8], xmm1
mov dword [ebx + 0x84], eax
mov al, 1
movzx ecx, word [ebx + 0x9a]
movzx edx, word [ebx + 0x98]
mov byte [esi + 5], al
mov byte [esi + 6], al
mov byte [esi + 7], al
mov dword [esi + 0xc], ecx
lea ecx, [esi + 0x158]
mov word [esi + 0x14], dx
call fcn.0051f5b2
movzx edx, word [esi + 0x14]
jmp 0x538283
lea eax, [esi + 0x3b0]
mov ebx, dword [eax - 0x28]
mov edx, dword [eax - 0x18]
movsd xmm0, qword [eax - 0x10]
mov ecx, dword [eax - 0x2c]
mov dword [esi + 0x14], ebx
mov dword [esi + 0x34], edx
mov ebx, dword [eax - 0x1c]
mov edx, dword [eax - 0x24]
movsd qword [esi + 0x638], xmm0
movsd xmm0, qword [eax - 8]
mov dword [esi + 0xc], ecx
mov dword [esi + 0x30], ebx
mov dword [esi + 0x18], edx
mov ebx, dword [eax - 0x20]
mov edx, dword [eax - 0x14]
movsd qword [esi + 0x640], xmm0
mov dword [esi + 0x78], ebx
mov dword [esi + 0x10], edx
lea ebx, [esi + 0x188]
push 0x1c0
push eax
push ebx
call fcn.0058a110
add esp, 0xc
mov eax, dword [esi + 0xc]
mov dword [ebx - 0x30], edi
movsd xmm0, qword [esi + 0x638]
movsd xmm1, qword [esi + 0x640]
lea ecx, [esi + 0x158]
mov dword [esi + 0x9d0], 0x11
mov dword [ebx - 0x2c], eax
mov eax, dword [esi + 0x14]
mov dword [ebx - 0x28], eax
mov eax, dword [esi + 0x18]
mov dword [ebx - 0x24], eax
mov eax, dword [esi + 0x78]
mov dword [ebx - 0x20], eax
mov eax, dword [esi + 0x34]
mov dword [ebx - 0x18], eax
mov eax, dword [esi + 0x30]
mov dword [ebx - 0x1c], eax
mov eax, dword [esi + 0x10]
mov dword [ebx - 0x14], eax
movsd qword [ebx - 0x10], xmm0
movsd qword [ebx - 8], xmm1
call fcn.0052b1e9
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], edx
mov al, 1
lea ecx, [esi + 0x158]
mov dword [esi + 0x9d0], 2
mov byte [esi + 5], al
mov byte [esi + 6], al
mov byte [esi + 7], al
call fcn.0052ae9a
mov edx, dword [esi + 0x10]
mov eax, edx
shr eax, 8
push 6
pop ebx
shl eax, 8
movzx ecx, dl
or ecx, eax
cmp ebx, 6
jne 0x5382b2
cmp ecx, 0x10000
jb 0x538307
mov al, 1
mov byte [esi + 5], al
mov byte [esi + 6], al
mov byte [esi + 7], al
call fcn.0059e9a2
jmp 0x53832c
mov eax, dword [esi + 0x12c]
lea edx, [esi + 0x970]
movsd xmm0, qword [esi + 0x570]
movsd xmm1, qword [esi + 0x578]
mov dword [edx + 0x10], eax
mov eax, dword [esi + 0x128]
mov dword [edx + 0xc], eax
mov dword [edx + 0x14], edi
movsd qword [edx + 0x18], xmm0
movsd qword [edx + 0x20], xmm1
mov dword [edx], ebx
mov dword [edx + 4], ecx
mov cl, 1
mov edi, dword [esi + 0xc]
mov byte [esi + 5], cl
mov byte [esi + 6], cl
mov byte [esi + 7], cl
mov ecx, dword [esi + 0x7c]
mov dword [edx + 8], edi
call fcn.0053bfa6
jmp 0x538338
mov eax, dword [esi + 0xc]
mov word [esi + 0x80], cx
cmp eax, 0x10000
jb 0x5383b7
mov al, 1
mov byte [esi + 5], al
mov byte [esi + 6], al
mov byte [esi + 7], al
call fcn.0059e9a2
mov ecx, dword [esi + 0x7c]
mov dword [ecx + 4], eax
mov dword [ecx], 2
mov dword [esi + 0x9d0], 1
mov al, 1
lea ecx, [esi + 0x100]
mov dword [esi + 0x9d0], 1
mov byte [esi + 0x5d], al
mov byte [esi + 0x5e], al
call fcn.00533fec
mov ecx, dword [esi + 0xd8]
mov edx, dword [esi + 0xdc]
call fcn.00461f56
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
and dword [esi + 0x9d0], 0
mov byte [esi + 0x63], 1
call fcn.0051e5ca
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
call fcn.0041b0e1
mov eax, dword [esi + 0xec]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
call fcn.0041b0e1
mov eax, dword [esi + 0x9c8]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov word [esi + 0x82], ax
cmp byte [esi + 0x85], 2
mov eax, dword [0x673b84]
jne 0x5384b4
cmp eax, 3
jb 0x538441
lea eax, [esi + 0x80]
lea ecx, [esi + 0x82]
mov dword [esi + 0x380], eax
mov eax, fcn.0044a1d0
mov dword [esi + 0x384], eax
mov dword [esi + 0x388], ecx
lea ecx, [esi + 0x158]
mov dword [esi + 0x38c], eax
lea eax, [esi + 0x380]
mov dword [ecx], str.Image_is_animated_GIF__x___loading_frames...
mov dword [ecx + 4], 3
and dword [ecx + 0x10], 0
mov dword [ecx + 8], eax
mov al, 1
mov dword [ecx + 0xc], 2
mov byte [esi + 5], al
mov byte [esi + 6], al
mov byte [esi + 7], al
push 3
pop edx
push 0x58
push 0x64f460
call fcn.00465135
pop eax
pop ecx
mov al, 1
mov byte [esi + 5], al
mov byte [esi + 6], al
mov byte [esi + 7], al
sub esp, 8
mov eax, dword [ebp + 8]
and dword [esp], 0
lea ecx, [esi + 0x158]
xor edx, edx
mov dword [esp + 4], eax
call fcn.0053c270
pop eax
pop ecx
mov ecx, dword [esi + 0x158]
mov edx, dword [esi + 0x15c]
mov eax, ecx
xor eax, 2
or eax, edx
jne 0x5385b5
lea eax, [esi + 0x160]
lea edi, [esi + 0x638]
push 0x28
push eax
push edi
call fcn.0058a110
add esp, 0xc
mov ecx, dword [esi + 0x7c]
mov al, 1
mov edx, edi
mov byte [esi + 5], al
mov byte [esi + 6], al
mov byte [esi + 7], al
call fcn.0053bfa6
jmp 0x538338
cmp eax, 3
jb 0x538512
lea ecx, [esi + 0x158]
lea eax, [esi + 0x85]
mov dword [ecx], str.Loading_static_image__detected__...
mov dword [ecx + 4], 2
and dword [ecx + 0x10], 0
mov dword [esi + 0x380], eax
lea eax, [esi + 0x380]
mov dword [esi + 0x384], 0x53c0d9
mov dword [ecx + 8], eax
mov al, 1
mov dword [ecx + 0xc], 1
mov byte [esi + 5], al
mov byte [esi + 6], al
mov byte [esi + 7], al
push 3
pop edx
push 0x68
push 0x64f460
call fcn.00465135
pop eax
pop ecx
mov al, 1
lea ecx, [esi + 0xd8]
mov byte [esi + 5], al
mov byte [esi + 6], al
mov byte [esi + 7], al
push 0x10
pop edx
call fcn.0053c0b4
mov eax, dword [ebp + 8]
lea edx, [esi + 0x158]
lea ecx, [esi + 0x380]
and dword [edx + 0x24], 0
and dword [edx + 0x20], 0
mov dword [edx + 0x28], eax
mov byte [edx + 0x30], 0xf
and dword [edx + 4], 0
mov dword [edx], 1
and dword [edx + 0xc], 0
mov dword [edx + 8], 0x20000000
and dword [edx + 0x10], 0
and dword [edx + 0x18], 0
mov al, 1
mov byte [esi + 5], al
mov byte [esi + 6], al
mov byte [esi + 7], al
call fcn.0053bc39
mov edx, dword [esi + 0x380]
mov edi, dword [esi + 0x384]
mov eax, edx
xor eax, 2
or eax, edi
jne 0x5388b4
mov cl, 1
mov eax, dword [esi + 0x38c]
mov edx, dword [esi + 0x388]
mov byte [esi + 5], cl
mov byte [esi + 6], cl
mov byte [esi + 7], cl
mov ecx, dword [esi + 0x7c]
push eax
call fcn.0053bf82
pop eax
jmp 0x538338
lea eax, [esi + 0x160]
lea ebx, [esi + 0x638]
push 0x28
push eax
push ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
call fcn.0058a110
add esp, 0xc
lea eax, [esi + 0x390]
lea edi, [esi + 0x188]
push 0xa8
push edi
push eax
call fcn.0058a110
add esp, 0xc
movzx eax, word [edi + 0xa8]
mov ecx, 0xdc
mov dword [esi + 0x1c], eax
movzx eax, word [edi + 0xaa]
mov dword [esi + 0x14], eax
lea eax, [esi + 0x158]
add ecx, eax
mov dword [esi + 0x10], ecx
push 0x2c
pop eax
lea edx, [esi + 0x758]
push eax
push ecx
push edx
call fcn.0058a110
add esp, 0xc
mov eax, dword [ebx + 8]
movsd xmm0, qword [ebx + 0x18]
movsd xmm1, qword [ebx + 0x20]
mov dword [edi - 0x20], eax
mov eax, dword [ebx + 0xc]
mov dword [edi - 0x1c], eax
mov eax, dword [ebx + 0x10]
mov dword [edi - 0x18], eax
mov eax, dword [ebx + 0x14]
mov dword [edi - 0x14], eax
mov eax, dword [esi + 0xc]
mov dword [edi - 0x2c], eax
mov eax, dword [esi + 8]
mov dword [edi - 0x30], eax
mov eax, dword [ebx + 4]
mov dword [edi - 0x24], eax
mov eax, dword [ebx]
mov dword [edi - 0x28], eax
lea eax, [esi + 0x390]
lea edi, [esi + 0x178]
movsd qword [eax - 0x10], xmm0
movsd qword [eax - 8], xmm1
push 0xb8
lea eax, [esi + 0x380]
push eax
push edi
call fcn.0058a110
add esp, 0xc
mov ebx, dword [esi + 0x1c]
mov eax, edi
mov word [edi + 0xb8], bx
mov edi, dword [esi + 0x14]
mov word [eax + 0xba], di
push 0x2c
pop eax
push eax
lea eax, [esi + 0x758]
push eax
push dword [esi + 0x10]
call fcn.0058a110
add esp, 0xc
lea eax, [esi + 0x178]
mov dword [esi + 0x9d0], 0xa
mov dword [eax + 0xfc], ebx
mov dword [eax + 0x100], edi
mov dword [eax + 0xe8], 0x80000000
push 8
pop edx
mov ecx, 0x128
call fcn.0042029e
mov edi, eax
push 0x128
lea ebx, [esi + 0x158]
push ebx
push eax
call fcn.0058a110
add esp, 0xc
mov eax, ebx
mov dword [esi + 0x18], edi
mov dword [esi + 0x9d0], 0x31
push edi
push eax
call fcn.0051b954
pop eax
pop ecx
mov eax, dword [esi + 0x158]
cmp eax, 6
jne 0x5388e0
mov ecx, dword [esi + 0x160]
mov eax, dword [esi + 0x15c]
mov dword [esi + 8], ecx
mov ecx, dword [esi + 0x174]
mov dword [esi + 0xc], eax
test ecx, ecx
je 0x539fa8
mov eax, dword [esi + 0x164]
xor edx, edx
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x168]
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x16c]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x170]
div ecx
lea ecx, [esi + 0xd8]
mov dword [esi + 0x9d0], 0x32
mov edx, eax
call fcn.0053c0b4
lea ecx, [esi + 0x758]
mov edx, dword [esi + 8]
push dword [esi + 0x1c]
call fcn.0046b89b
lea edx, [esi + 0x758]
add esp, 4
mov eax, dword [esi + 0x760]
movsd xmm0, qword [esi + 0x758]
lea ecx, [esi + 0x384]
mov edi, dword [esi + 0x14]
mov dword [esi + 0x9d0], 0x33
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x390], edi
mov dword [esi + 0x394], ecx
mov ecx, edx
lea edx, [esi + 0x380]
mov dword [esi + 0x380], 3
call fcn.0045acdc
mov ecx, dword [esi + 0x760]
mov eax, dword [esi + 0x75c]
mov dword [esi + 0x9d0], 0x35
mov dword [esi + 0x1c], eax
mov dword [esi + 0x10], ecx
call fcn.004ce3e6
mov dword [esi + 0x14], eax
mov ebx, dword [esi + 0x10]
mov edi, edx
push ebx
push dword [esi + 0x1c]
push edx
call fcn.0058a110
add esp, 0xc
mov ecx, dword [esi + 0x758]
mov edx, dword [esi + 0x75c]
call fcn.0041b0e1
mov ecx, edi
mov edx, ebx
mov dword [esi + 0x9d0], 0x34
mov dword [esi + 0x1c], edi
call fcn.0053c17c
movzx edx, word [esi + 0x80]
movzx eax, word [esi + 0x82]
lea ecx, [esi + 0x758]
push dword [esi + 0x1c]
push eax
call fcn.0053c1b6
pop eax
pop ecx
cmp dword [esi + 0x758], 0
jne 0x538b99
mov edx, dword [esi + 0x75c]
lea ecx, [esi + 0x100]
call fcn.0053c1fd
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x1c]
call fcn.0041b0e1
lea ecx, [esi + 0x380]
call fcn.0053c118
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
call fcn.0041b0e1
mov edi, dword [esi + 0x18]
lea eax, [esi + 0x158]
jmp 0x538705
movzx ecx, byte [esi + 0x3b0]
cmp ecx, 0xf
push 4
pop eax
jne 0x538983
mov dword [esi + 0xc], eax
mov dword [esi + 0x14], 0x80000003
push 3
pop edx
mov ecx, edx
mov eax, 0x80000000
jmp 0x5390ed
cmp eax, 7
jne 0x538b6e
mov ecx, dword [esi + 0x18]
mov al, 1
mov edx, 0x64cae4
mov dword [esi + 0x9d0], 2
mov byte [esi + 5], al
mov byte [esi + 6], al
mov byte [esi + 7], al
call fcn.004218ac
mov eax, dword [0x673b84]
lea ecx, [esi + 0x758]
cmp eax, 3
jb 0x5392b4
mov dword [esi + 0x380], ecx
mov eax, dword [esi + 0x108]
lea ecx, [esi + 0x158]
mov dl, 1
lea edi, [esi + 0x380]
mov dword [esi + 0x384], fcn.004465e0
mov dword [ecx], str.Successfully_loaded__frames.H
mov dword [ecx + 4], 2
and dword [ecx + 0x10], 0
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], 1
mov byte [esi + 5], dl
mov byte [esi + 6], dl
mov byte [esi + 7], dl
mov dword [esi + 0x758], eax
push 3
pop edx
push 0x66
push 0x64f460
call fcn.00465135
pop eax
pop ecx
jmp 0x5392b4
mov ebx, dword [esi + 0x390]
mov dword [esi + 0x78], edx
mov dword [esi + 0x98], edi
mov edi, dword [esi + 0x394]
mov edx, dword [esi + 0x398]
mov eax, dword [esi + 0x39c]
test ecx, ecx
mov dword [esi + 0x138], ebx
mov dword [esi + 0x13c], edi
mov dword [esi + 0x140], edx
mov dword [esi + 0xe8], eax
mov dword [esi + 0x144], eax
mov eax, dword [esi + 0x78]
mov dword [esi + 0x88], ebx
mov dword [esi + 0x94], edi
mov dword [esi + 0x9c], edx
mov ebx, dword [esi + 0x38c]
mov edx, dword [esi + 0x3a0]
mov edi, dword [esi + 0x3a8]
mov dword [esi + 0x128], eax
mov eax, dword [esi + 0x98]
mov dword [esi + 0x12c], eax
mov eax, dword [esi + 0x388]
mov dword [esi + 0x134], ebx
mov dword [esi + 0x8c], eax
mov dword [esi + 0x130], eax
mov eax, dword [esi + 0x3a4]
je 0x538ca7
cmp ecx, 1
je 0x538bf8
cmp ecx, 2
jne 0x538d3b
mov cl, 1
mov dword [esi + 0x90], ebx
mov byte [esi + 5], cl
mov byte [esi + 6], cl
mov byte [esi + 7], cl
lea ecx, [esi + 0x158]
push edi
push eax
call fcn.0053c270
pop eax
pop ecx
mov ecx, dword [esi + 0x158]
mov ebx, dword [esi + 0x15c]
mov eax, ecx
xor eax, 2
or eax, ebx
je 0x538cde
lea eax, [esi + 0x188]
mov dword [esi + 0x64], ecx
mov edx, dword [eax - 0x28]
mov edi, dword [eax - 0x1c]
mov ecx, dword [eax - 4]
movsd xmm0, qword [eax - 0xc]
mov dword [esi + 0x1c], edx
mov edx, dword [eax - 0x24]
mov dword [esi + 0xe4], edi
mov edi, dword [eax - 0x14]
mov dword [esi + 0x360], ecx
movsd qword [esi + 0x358], xmm0
mov dword [esi + 0xc], edx
mov edx, dword [eax - 0x20]
mov dword [esi + 0x18], edi
lea edi, [esi + 0x668]
mov dword [esi + 0x14], edx
mov edx, dword [eax - 0x18]
mov dword [esi + 0x20], edx
mov edx, dword [eax - 0x10]
mov dword [esi + 0x10], edx
push 0xd8
push eax
push edi
call fcn.0058a110
add esp, 0xc
mov eax, dword [esi + 0x78]
mov edx, dword [esi + 0x64]
movzx ecx, word [edi + 0xa8]
movsd xmm0, qword [esi + 0x358]
or eax, dword [esi + 0x98]
movzx eax, word [edi + 0xaa]
mov dword [edi - 0x30], edx
mov edx, dword [esi + 0x1c]
mov dword [edi - 0x2c], ebx
mov ebx, dword [esi + 0x360]
mov dword [edi - 0x28], edx
mov edx, dword [esi + 0xc]
mov dword [edi - 0x24], edx
mov edx, dword [esi + 0xe4]
mov dword [edi - 0x1c], edx
mov edx, dword [esi + 0x14]
mov dword [edi - 0x20], edx
mov edx, dword [esi + 0x20]
mov dword [edi - 0x18], edx
mov edx, dword [esi + 0x18]
mov dword [edi - 0x14], edx
mov edx, dword [esi + 0x10]
mov dword [edi - 0x10], edx
mov dword [edi - 4], ebx
movsd qword [edi - 0xc], xmm0
je 0x53904a
mov edx, ecx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x1c], eax
mov ecx, dword [esi + 0x8c]
imul edx, eax
mov eax, dword [esi + 0x90]
mov edi, edx
shl edx, 2
shr edi, 0x1e
cmp ecx, edx
mov ebx, eax
sbb ebx, edi
jae 0x539034
xor edx, edx
push 3
pop eax
mov dword [esi + 8], eax
jmp 0x539081
lea ecx, [esi + 0x94c]
mov dword [ecx - 4], eax
push 0x24
lea eax, [esi + 0x15c]
push eax
push ecx
call fcn.0058a110
add esp, 0xc
mov ecx, dword [esi + 0x7c]
lea edx, [esi + 0x948]
call fcn.0053bfa6
jmp 0x538bd1
mov ecx, dword [esi + 0x75c]
call fcn.0059e909
mov ecx, dword [esi + 0x7c]
mov edx, dword [esi + 0x1c]
mov dword [ecx + 4], eax
mov dword [ecx], 2
mov ecx, dword [esi + 0x14]
call fcn.0041b0e1
lea ecx, [esi + 0x380]
call fcn.0053c118
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
call fcn.0041b0e1
mov ecx, dword [esi + 0x18]
mov al, 1
mov edx, 0x64cae4
mov dword [esi + 0x9d0], 2
mov byte [esi + 5], al
mov byte [esi + 6], al
mov byte [esi + 7], al
call fcn.004218ac
jmp 0x538338
mov cl, 1
mov dword [esi + 0x90], ebx
mov byte [esi + 5], cl
mov byte [esi + 6], cl
mov byte [esi + 7], cl
lea ecx, [esi + 0x158]
push edi
push eax
call fcn.0053d53c
pop eax
pop ecx
mov eax, dword [esi + 0x204]
mov edx, dword [esi + 0x168]
movsd xmm0, qword [esi + 0x174]
mov ebx, dword [esi + 0x16c]
mov ecx, dword [esi + 0x15c]
mov edi, dword [esi + 0x160]
mov dword [esi + 8], eax
cmp eax, 0x80000000
mov eax, dword [esi + 0x158]
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x170]
movsd qword [esi + 0x118], xmm0
mov dword [esi + 0x14], ebx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x17c]
mov dword [esi + 0x120], eax
mov eax, dword [esi + 0x164]
mov dword [esi + 0x10], eax
jne 0x538db6
mov eax, ecx
mov dword [esi + 8], edi
mov edi, ecx
mov ecx, dword [esi + 0x120]
movsd xmm0, qword [esi + 0x118]
and eax, 0xffffff00
mov dword [esi + 0x70], ecx
mov ecx, edi
movsd qword [esi + 0x68], xmm0
jmp 0x5390ed
mov cl, 1
mov dword [esi + 0x90], ebx
lea ebx, [esi + 0x128]
mov byte [esi + 5], cl
mov byte [esi + 6], cl
mov byte [esi + 7], cl
lea ecx, [esi + 0x158]
push ebx
push edi
push eax
call fcn.0053ca2c
add esp, 0xc
mov edi, dword [esi + 0x158]
cmp edi, 2
jne 0x538ea6
mov eax, dword [esi + 0x160]
mov ecx, dword [esi + 0x168]
mov edx, dword [esi + 0x164]
movsd xmm0, qword [esi + 0x17c]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x16c]
mov dword [esi + 8], ecx
mov ecx, edx
movsd qword [esi + 0x68], xmm0
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x184]
mov dword [esi + 0x70], eax
mov eax, edx
mov edx, dword [esi + 0x170]
and eax, 0xffffff00
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x174]
mov dword [esi + 0x14], edx
mov edx, dword [esi + 0x178]
jmp 0x5390ed
push 4
pop eax
lea edx, [esi + 0x380]
mov dword [esi + 0xc], eax
mov al, 1
mov byte [edx + 4], cl
lea ecx, [esi + 0x158]
mov dword [edx], 0x80000000
mov byte [esi + 5], al
mov byte [esi + 6], al
mov byte [esi + 7], al
call fcn.00459ee4
mov ecx, dword [esi + 0x174]
mov eax, dword [esi + 0x15c]
mov edx, dword [esi + 0x158]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x170]
mov dword [esi + 8], eax
mov eax, edx
and eax, 0xffffff00
mov dword [esi + 0x68], ecx
mov ecx, edx
mov edx, dword [esi + 0x160]
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0x164]
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0x168]
mov dword [esi + 0x14], edx
mov edx, dword [esi + 0x16c]
jmp 0x5390ed
lea ebx, [esi + 0x598]
push 0x84
lea eax, [esi + 0x180]
push eax
push ebx
mov dword [esi + 0x20], edx
mov dword [esi + 0x64], ecx
call fcn.0058a110
add esp, 0xc
lea eax, [esi + 0x180]
lea ecx, [esi + 0x570]
mov byte [esi + 0x5f], 1
mov dword [esi + 0x9d0], 0xb
movsd xmm0, qword [eax + 0x88]
movsd xmm1, qword [eax + 0x90]
movsd xmm2, qword [eax + 0x98]
mov eax, dword [esi + 0xc]
movsd qword [ebx + 0x88], xmm0
movsd qword [ebx + 0x90], xmm1
movsd qword [ebx + 0x98], xmm2
mov dword [ebx - 0x28], eax
mov eax, dword [esi + 0x64]
movsd xmm0, qword [esi + 0x118]
mov dword [ebx - 0x24], eax
mov eax, dword [esi + 0x10]
mov dword [ebx - 0x20], edi
mov dword [ebx - 0x1c], eax
mov eax, dword [esi + 0x18]
mov dword [ebx - 0x18], eax
mov eax, dword [esi + 0x14]
mov dword [ebx - 0x14], eax
mov eax, dword [esi + 0x20]
mov dword [ebx - 0x10], eax
mov eax, dword [esi + 0x120]
movsd qword [ebx - 0xc], xmm0
mov dword [ebx - 4], eax
mov eax, dword [esi + 8]
mov dword [ebx + 0x84], eax
call fcn.0051f584
mov ecx, dword [esi + 0x98]
or dword [esi + 0x78], ecx
push 3
pop ecx
mov edi, dword [esi + 0x90]
mov ebx, dword [esi + 0x8c]
mov dword [esi + 0xc], ecx
je 0x538f9e
cmp ebx, eax
sbb edi, edx
jae 0x538f9e
mov dword [esi + 0x10], 0
mov dword [esi + 8], ecx
jmp 0x5390c9
lea eax, [esi + 0x188]
mov ebx, dword [eax - 0x28]
mov edx, dword [eax - 4]
mov ecx, dword [eax - 0x2c]
movsd xmm0, qword [eax - 0xc]
mov dword [esi + 0xc], ebx
mov dword [esi + 0xc0], edx
mov ebx, dword [eax - 0x24]
mov edx, dword [eax - 0x20]
mov dword [esi + 8], ecx
movsd qword [esi + 0xb8], xmm0
mov dword [esi + 0x64], ebx
mov dword [esi + 0x18], edx
mov ebx, dword [eax - 0x1c]
mov edx, dword [eax - 0x18]
mov dword [esi + 0xe4], ebx
mov dword [esi + 0x20], edx
mov edx, dword [eax - 0x10]
mov ebx, dword [eax - 0x14]
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], edx
lea ebx, [esi + 0x788]
push 0x1c0
push eax
push ebx
call fcn.0058a110
add esp, 0xc
mov eax, dword [esi + 8]
mov dword [ebx - 0x30], edi
movsd xmm0, qword [esi + 0xb8]
lea ecx, [esi + 0x758]
mov byte [esi + 0x59], 1
mov dword [esi + 0x9d0], 0xf
mov dword [ebx - 0x2c], eax
mov eax, dword [esi + 0xc]
mov dword [ebx - 0x28], eax
mov eax, dword [esi + 0x64]
mov dword [ebx - 0x24], eax
mov eax, dword [esi + 0xe4]
mov dword [ebx - 0x1c], eax
mov eax, dword [esi + 0x18]
mov dword [ebx - 0x20], eax
mov eax, dword [esi + 0x20]
mov dword [ebx - 0x18], eax
mov eax, dword [esi + 0x10]
mov dword [ebx - 0x14], eax
mov eax, dword [esi + 0x14]
mov dword [ebx - 0x10], eax
mov eax, dword [esi + 0xc0]
movsd qword [ebx - 0xc], xmm0
mov dword [ebx - 4], eax
call fcn.0052ae59
mov ecx, dword [esi + 0x98]
mov dword [esi + 0x10], 0
or dword [esi + 0x78], ecx
push 3
pop ecx
mov edi, dword [esi + 0x90]
mov ebx, dword [esi + 0x8c]
mov dword [esi + 0xc], ecx
je 0x538fd0
cmp ebx, eax
sbb edi, edx
jae 0x538fd0
mov dword [esi + 8], ecx
jmp 0x53900f
cmp dword [esi + 0x88], 0
push 2
pop eax
mov dword [esi + 8], eax
je 0x5390a2
movzx eax, word [esi + 0x630]
cmp dword [esi + 0x94], eax
jae 0x5390a2
mov dword [esi + 0x10], 0
jmp 0x5390c9
lea ecx, [esi + 0x758]
mov byte [esi + 0x59], 1
call fcn.0052b1e9
cmp dword [esi + 0x88], 0
push 2
pop ecx
mov dword [esi + 8], ecx
je 0x538ff6
cmp dword [esi + 0x94], eax
jb 0x53900f
cmp dword [esi + 0x9c], 0
je 0x539e8b
cmp dword [esi + 0xe8], edx
jae 0x539e8b
mov al, 1
lea ecx, [esi + 0x758]
mov dword [esi + 0x9d0], 2
mov byte [esi + 5], al
mov byte [esi + 6], al
mov byte [esi + 7], al
call fcn.0052ae9a
jmp 0x5390e9
sub ecx, edx
sbb eax, edi
mov dword [esi + 0x8c], ecx
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x90], eax
mov eax, dword [esi + 0x1c]
xor edx, edx
cmp dword [esi + 0x88], 0
mov edi, dword [esi + 0x78]
mov ebx, dword [esi + 0x98]
je 0x539066
cmp dword [esi + 0x94], ecx
jb 0x539081
cmp dword [esi + 0x9c], 0
mov ecx, dword [esi + 0xe8]
je 0x539c2d
cmp ecx, eax
jae 0x539c2d
mov al, 1
lea ecx, [esi + 0x658]
mov dword [esi + 0x10], edx
mov byte [esi + 5], al
mov byte [esi + 6], al
mov byte [esi + 7], al
call fcn.0052f4a9
push 3
pop eax
mov dword [esi + 0xc], eax
jmp 0x5390e9
cmp dword [esi + 0x9c], 0
mov dword [esi + 0x10], 0
je 0x539dbe
movzx eax, word [esi + 0x632]
cmp dword [esi + 0xe8], eax
jae 0x539dbe
mov al, 1
lea ecx, [esi + 0x570]
mov dword [esi + 0x9d0], 2
mov byte [esi + 5], al
mov byte [esi + 6], al
mov byte [esi + 7], al
call fcn.0051f5b2
xor eax, eax
xor ecx, ecx
mov edi, dword [esi + 0xc]
and eax, 0xffffff00
movzx ecx, cl
mov ebx, edx
or ecx, eax
cmp edi, 6
jne 0x5391f8
lea edx, [esi + 0x740]
mov eax, dword [esi + 8]
mov edi, dword [esi + 0x18]
mov dword [esi + 0x9d0], 0x36
mov dword [edx], ecx
mov ecx, dword [esi + 0x10]
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
mov ecx, dword [esi + 0x14]
mov dword [edx + 0xc], edi
mov dword [edx + 0x10], ecx
lea ecx, [esi + 0x158]
mov dword [edx + 0x14], ebx
call fcn.0045acdc
mov ecx, dword [esi + 0x160]
mov eax, dword [esi + 0x15c]
mov dword [esi + 0x9d0], 0x38
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
call fcn.004ce3e6
mov dword [esi + 0x1c], eax
mov ebx, dword [esi + 0xc]
mov edi, edx
push ebx
push dword [esi + 8]
push edx
call fcn.0058a110
add esp, 0xc
mov ecx, dword [esi + 0x158]
mov edx, dword [esi + 0x15c]
call fcn.0041b0e1
mov ecx, edi
mov edx, ebx
mov dword [esi + 0x9d0], 0x37
mov dword [esi + 8], edi
call fcn.0053c17c
movzx edx, word [esi + 0x80]
movzx eax, word [esi + 0x82]
lea ecx, [esi + 0x158]
push dword [esi + 8]
push eax
call fcn.0053c1b6
pop eax
pop ecx
cmp dword [esi + 0x158], 0
je 0x539250
mov ecx, dword [esi + 0x15c]
call fcn.0059e909
mov ecx, dword [esi + 0x7c]
mov edx, dword [esi + 8]
mov dword [ecx + 4], eax
mov dword [ecx], 2
mov ecx, dword [esi + 0x1c]
call fcn.0041b0e1
lea ecx, [esi + 0x740]
call fcn.0053c118
jmp 0x538338
mov eax, dword [esi + 0x70]
lea edx, [esi + 0x998]
movsd xmm0, qword [esi + 0x68]
mov dword [esi + 0x9d0], 2
mov dword [edx + 0x24], eax
mov eax, dword [esi + 8]
movsd qword [edx + 0x1c], xmm0
mov dword [edx], edi
mov dword [edx + 4], ecx
mov cl, 1
mov edi, dword [esi + 0x14]
mov byte [esi + 5], cl
mov byte [esi + 6], cl
mov byte [esi + 7], cl
mov ecx, dword [esi + 0x7c]
mov dword [edx + 8], eax
mov eax, dword [esi + 0x10]
mov dword [edx + 0xc], eax
mov eax, dword [esi + 0x18]
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], edi
mov dword [edx + 0x18], ebx
call fcn.0053bfa6
jmp 0x538338
mov edx, dword [esi + 0x15c]
lea ecx, [esi + 0x100]
call fcn.0053c1fd
mov eax, dword [0x673b84]
cmp eax, 3
jb 0x53929e
lea ecx, [esi + 0x158]
mov dword [ecx], str.Successfully_loaded.
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], str._rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_std_srcioimpls.rs
and dword [ecx + 0xc], 0
push 3
pop edx
push 0x70
push 0x64f460
call fcn.00465135
pop eax
pop ecx
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 8]
call fcn.0041b0e1
lea ecx, [esi + 0x740]
call fcn.0053c118
mov ecx, dword [esi + 0xe0]
test ecx, ecx
je 0x53aff8
mov edx, dword [esi + 0xdc]
xor eax, eax
mov edi, ecx
add ax, word [edx]
add edx, 2
dec edi
jne 0x5392cc
test cx, cx
je 0x53aff8
xor edx, edx
div cx
mov dword [esi + 0x9d0], 0x30
mov word [esi + 0x14], ax
push 0x19
pop ecx
call fcn.004ce3e6
mov edi, eax
mov ebx, edx
push 0x19
pop eax
push eax
push str.VelopackSetupSplashWindow
push edx
call fcn.0058a110
add esp, 0xc
mov dword [esi + 0x768], edi
mov dword [esi + 0x76c], ebx
push 0x19
pop eax
movsd xmm1, qword [esi + 0x388]
mov dword [esi + 0x770], eax
mov ax, 5
mov dword [esi + 0x7d8], 3
movsd xmm2, qword [esi + 0x390]
movsd xmm0, qword [esi + 0x380]
mov ecx, dword [esi + 0xec]
and dword [esi + 0x638], 0
mov word [esi + 0x780], ax
mov dword [esi + 0x784], 0x7f00
movsd qword [esi + 0x794], xmm1
movsd xmm1, qword [esi + 0x398]
movsd qword [esi + 0x79c], xmm2
movsd xmm2, qword [esi + 0x170]
movsd qword [esi + 0x78c], xmm0
movsd qword [esi + 0x7a4], xmm1
movsd xmm1, qword [esi + 0x168]
mov word [esi + 0x7ac], ax
mov dword [esi + 0x7b0], 0x7f8a
movsd qword [esi + 0x7d0], xmm2
movsd xmm2, qword [esi + 0x158]
mov eax, dword [ecx + 8]
movsd qword [esi + 0x7c8], xmm1
movsd xmm1, qword [esi + 0x160]
movsd qword [esi + 0x7b8], xmm2
movsd qword [esi + 0x7c0], xmm1
mov dword [esi + 0x764], 0xf
and dword [esi + 0x760], 0
mov dword [esi + 0x77c], eax
movsd xmm1, qword [ecx]
movzx eax, word [esi + 0x80]
movsd qword [esi + 0x774], xmm1
mov dword [esi + 0x7dc], eax
movzx eax, word [esi + 0x82]
mov dword [esi + 0x7e0], eax
mov dword [esi + 0x7e4], 0x80000000
and dword [esi + 0x7e8], 0
and dword [esi + 0x7ec], 0
and dword [esi + 0x758], 0
push 4
pop edx
mov dword [esi + 0x63c], edx
and dword [esi + 0x640], 0
and dword [esi + 0x644], 0
mov dword [esi + 0x648], edx
and dword [esi + 0x64c], 0
and dword [esi + 0x650], 0
mov dword [esi + 0x654], edx
and dword [esi + 0x658], 0
and dword [esi + 0x65c], 0
mov dword [esi + 0x660], edx
and dword [esi + 0x380], 0
mov dword [esi + 0x384], edx
and dword [esi + 0x388], 0
and dword [esi + 0x38c], 0
mov dword [esi + 0x390], edx
and dword [esi + 0x394], 0
and dword [esi + 0x398], 0
mov dword [esi + 0x39c], edx
and dword [esi + 0x3a0], 0
and dword [esi + 0x3a4], 0
mov dword [esi + 0x3a8], edx
and dword [esi + 0x664], 0
and dword [esi + 0x3ac], 0
mov dword [esi + 0x9d0], 0x2f
push 0x20
pop ecx
call fcn.0042029e
xor ecx, ecx
lea edx, [esi + 0x164]
inc ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
and dword [eax + 8], 0
mov dword [eax + 0xc], 4
and dword [eax + 0x10], 0
and dword [eax + 0x14], 0
and dword [edx - 8], 0
mov byte [edx + 0x60], 0
and dword [edx - 4], 0
push 0x30
pop edi
mov dword [esi + 8], eax
lea ecx, [esi + 0x638]
push edi
push ecx
push edx
call fcn.0058a110
add esp, 0xc
lea ebx, [esi + 0x194]
push edi
lea eax, [esi + 0x380]
push eax
push ebx
call fcn.0058a110
mov eax, dword [esi + 8]
add esp, 0xc
mov dword [ebx - 0x3c], eax
lock inc dword [eax]
jle 0x53b04b
mov dword [esi + 0x380], eax
mov dword [esi + 0x9d0], 0x2e
push 4
pop ecx
mov edx, ecx
call fcn.0042029e
mov ecx, dword [esi + 8]
mov dword [eax], ecx
mov dword [esi + 0x9d0], 0x2d
push 5
pop edx
lea ecx, [esi + 0x194]
push 0x651794
push eax
call fcn.005773f5
pop eax
pop ecx
xor edx, edx
xor ecx, ecx
inc edx
call fcn.0042029e
lea ecx, [esi + 0x194]
mov edx, 0xbfff
push 0x6517c4
push eax
call fcn.005773f5
pop eax
pop ecx
mov edi, 0x98
lea ebx, [esi + 0x380]
lea eax, [ebx + edi]
push 0x70
lea ecx, [esi + 0x158]
push ecx
push eax
call fcn.0058a110
add esp, 0xc
lea eax, [esi + 0x758]
push edi
push eax
push ebx
call fcn.0058a110
add esp, 0xc
lea edi, [esi + 0x160]
push 0x108
push ebx
push edi
call fcn.0058a110
add esp, 0xc
and dword [edi + 0x108], 0
xor eax, eax
mov dword [esi + 0x9d0], 0x2c
inc eax
mov dword [edi - 8], eax
mov dword [edi - 4], eax
push 4
pop edx
mov ecx, 0x114
call fcn.0042029e
mov edi, eax
push 0x114
lea eax, [esi + 0x158]
push eax
push edi
call fcn.0058a110
add esp, 0xc
mov dword [esi + 0x570], edi
lock inc dword [edi]
jle 0x53b04b
mov ecx, edi
mov dword [esi + 0x638], edi
mov byte [esi + 0x2b], 1
mov dword [esi + 0x9d0], 0x28
mov dword [esi + 8], edi
add ecx, 0xa0
mov dword [esi + 0x1c], ecx
call fcn.005773be
mov dword [esi + 0xc], eax
mov eax, dword [esi + 8]
mov dword [esi + 0x9d0], 0x2b
mov dword [esi + 0x158], eax
push 4
pop ecx
mov edx, ecx
call fcn.0042029e
mov ecx, dword [esi + 8]
mov dword [eax], ecx
mov byte [esi + 0x2b], 0
mov dword [esi + 0x9d0], 0x28
push 6
pop edx
mov ecx, dword [esi + 0xc]
push 0x6517ac
push eax
call fcn.005773f5
pop eax
pop ecx
mov eax, dword [esi + 8]
lock inc dword [eax]
jle 0x53b04b
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x380], eax
mov byte [esi + 0x2a], 1
mov dword [esi + 0x9d0], 0x29
call fcn.005773be
mov dword [esi + 0xc], eax
mov eax, dword [esi + 8]
mov dword [esi + 0x9d0], 0x2a
mov dword [esi + 0x158], eax
push 4
pop ecx
mov edx, ecx
call fcn.0042029e
mov ecx, dword [esi + 8]
mov dword [eax], ecx
mov byte [esi + 0x2a], 0
mov dword [esi + 0x9d0], 0x29
push 7
pop edx
mov ecx, dword [esi + 0xc]
push 0x6517dc
push eax
call fcn.005773f5
pop eax
pop ecx
mov ecx, dword [esi + 0x1c]
mov byte [esi + 0x2a], 0
call fcn.00577387
mov dword [esi + 0x1c], eax
xor edx, edx
xor ecx, ecx
mov byte [esi + 0x2a], 0
inc edx
call fcn.0042029e
mov ecx, dword [esi + 0x1c]
mov byte [esi + 0x2a], 0
mov edx, 0x82
push 0x6517f4
push eax
call fcn.005773f5
pop eax
pop ecx
mov eax, dword [esi + 8]
and dword [esi + 0x30], 0
xor edx, edx
xor ecx, ecx
inc edx
mov dword [esi + 0x34], eax
call fcn.0041b0e1
mov dword [esi + 0x9d0], 0x24
push 6
pop ecx
call fcn.0053c76f
mov dword [esi + 0x9d0], 0x23
push 5
pop ecx
call fcn.0053c76f
xor ecx, ecx
xor edi, edi
inc edi
mov edx, edi
call fcn.0041b0e1
mov eax, dword [esi + 0x108]
movsd xmm0, qword [esi + 0x100]
lea ecx, [esi + 0x160]
mov dword [esi + 0x9d0], 0x13
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
mov dword [ecx - 8], edi
mov dword [ecx - 4], edi
push 0x14
pop ecx
push 4
pop edx
call fcn.0042029e
mov ecx, dword [esi + 0x168]
mov edx, dword [ebp + 0x10]
mov dword [esi + 0x10], eax
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp + 0xc]
movsd xmm0, qword [esi + 0x158]
movsd xmm1, qword [esi + 0x160]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
mov byte [esi + 0x60], 0
mov dword [esi + 0x9d0], 0x14
call fcn.0053c77e
mov dword [esi + 0x18], eax
mov byte [esi + 0x61], 1
mov dword [esi + 0x9d0], 0x15
push 0x10
pop ecx
push 4
pop edx
call fcn.0042029e
xor ecx, ecx
inc ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
and dword [eax + 8], 0
and word [eax + 0xc], 0
mov byte [esi + 0x86], 0
mov byte [esi + 0x87], 1
mov dword [esi + 0x9d0], 0x16
push 0x10
pop ecx
push 4
pop edx
mov dword [esi + 0xc], eax
call fcn.0042029e
xor ecx, ecx
mov edi, dword [esi + 8]
lea edx, [esi + 0x638]
inc ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov ecx, dword [esi + 0x10]
and dword [eax + 8], 0
and dword [eax + 0xc], 0
and dword [edx], 0
movzx ebx, word [esi + 0x80]
mov dword [edx + 4], edi
mov dword [edx + 8], ecx
mov ecx, dword [esi + 0x18]
mov dword [edx + 0xc], ecx
movzx ecx, word [esi + 0x14]
mov word [edx + 0x18], cx
mov ecx, dword [esi + 0xc]
mov dword [edx + 0x10], ecx
movzx ecx, word [esi + 0x82]
mov dword [edx + 0x14], eax
mov word [edx + 0x1a], bx
mov word [edx + 0x1c], cx
lea ecx, [esi + 0x758]
call fcn.0053c7f3
xor ecx, ecx
mov edx, edi
mov byte [esi + 0x26], 1
mov dword [esi + 0x9d0], 0x18
call fcn.00578331
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x758]
mov ecx, dword [esi + 0x75c]
movzx edx, word [esi + 0x770]
mov dword [esi + 0x9d0], 0x19
mov dword [esi + 0x158], eax
mov dword [esi + 0x15c], ecx
mov word [esi + 0x160], dx
push 0xc
pop ecx
push 4
pop edx
call fcn.0042029e
mov ecx, dword [esi + 0x160]
xor edx, edx
inc edx
mov dword [eax + 8], ecx
mov ecx, dword [esi + 0x1c]
movsd xmm0, qword [esi + 0x158]
movsd qword [eax], xmm0
mov byte [esi + 0x26], 0
mov dword [esi + 0x9d0], 0x18
push 0x648578
push eax
call fcn.005773f5
pop eax
pop ecx
mov edx, dword [esi + 8]
xor ecx, ecx
mov byte [esi + 0x26], 0
call fcn.00578331
mov dword [esi + 0x1c], eax
xor edx, edx
xor ecx, ecx
mov byte [esi + 0x26], 0
inc edx
call fcn.0042029e
mov ecx, dword [esi + 0x1c]
mov byte [esi + 0x26], 0
mov edx, 0x84
push 0x648590
push eax
call fcn.005773f5
pop eax
pop ecx
lea ecx, [esi + 0x380]
lea edx, [esi + 0x638]
call fcn.0053c7f3
mov edx, dword [esi + 8]
xor ecx, ecx
mov byte [esi + 0x29], 1
mov dword [esi + 0x9d0], 0x1a
call fcn.00578331
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x380]
mov ecx, dword [esi + 0x384]
mov edx, dword [esi + 0x38c]
mov edi, dword [esi + 0x390]
mov dword [esi + 0x9d0], 0x1d
mov dword [esi + 0x158], eax
mov dword [esi + 0x15c], ecx
mov dword [esi + 0x160], edx
mov dword [esi + 0x164], edi
push 0x10
pop ecx
push 4
pop edx
call fcn.0042029e
movsd xmm0, qword [esi + 0x158]
movsd xmm1, qword [esi + 0x160]
mov ebx, dword [esi + 0x1c]
mov dword [esi + 0x14], eax
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
mov ecx, ebx
mov eax, dword [ebx + 0x14]
mov edx, dword [ebx + 0xc]
add ecx, 0xc
test eax, eax
jne 0x539a5c
xor eax, eax
cmp edx, 0xf
ja 0x539a5c
mov dword [esi + 0x78], ecx
xor edx, edx
push 0x10
call fcn.00483dd6
pop ecx
mov ecx, eax
mov byte [esi + 0x62], 1
mov dword [esi + 0x9d0], 0x1b
call fcn.0040537b
mov ebx, dword [esi + 0x1c]
mov ecx, dword [esi + 0x78]
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x14]
cmp eax, edx
jne 0x539a75
mov dword [esi + 0x9d0], 0x1c
call fcn.004b03aa
mov ebx, dword [esi + 0x1c]
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x10]
mov edi, dword [esi + 0x14]
imul edx, eax, 0xc
inc eax
mov dword [ecx + edx], edi
mov dword [ecx + edx + 4], 0x649bb4
mov dword [ecx + edx + 8], 1
lea ecx, [esi + 0x158]
lea edx, [esi + 0x638]
mov dword [ebx + 0x14], eax
call fcn.0053c7f3
mov edx, dword [esi + 8]
xor ecx, ecx
mov byte [esi + 0x5c], 1
mov dword [esi + 0x9d0], 0x1e
call fcn.00578331
mov dword [esi + 8], eax
mov eax, dword [esi + 0x158]
mov dword [esi + 0x9d0], 0x1f
mov dword [esi + 0x570], eax
mov eax, dword [esi + 0x15c]
mov dword [esi + 0x574], eax
mov eax, dword [esi + 0x160]
mov dword [esi + 0x578], eax
mov eax, dword [esi + 0x168]
mov dword [esi + 0x57c], eax
mov eax, dword [esi + 0x16c]
mov dword [esi + 0x580], eax
mov eax, dword [esi + 0x172]
mov dword [esi + 0x584], eax
push 0x18
pop ecx
push 4
pop edx
call fcn.0042029e
movsd xmm0, qword [esi + 0x580]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [esi + 0x570]
movsd xmm1, qword [esi + 0x578]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
mov byte [esi + 0x5c], 0
mov dword [esi + 0x9d0], 0x1e
push 0xf
pop edx
mov ecx, dword [esi + 8]
push 0x6485a8
push eax
call fcn.005773f5
pop eax
pop ecx
mov ecx, dword [esi + 0x164]
mov byte [esi + 0x29], 0
mov dword [esi + 0x9d0], 0x1a
call fcn.00534791
mov ecx, dword [esi + 0x388]
mov dword [esi + 0x9d0], 0x20
call fcn.00533fb9
mov ecx, dword [esi + 0x394]
call fcn.00533fd9
mov ecx, dword [esi + 0x760]
mov dword [esi + 0x9d0], 0x22
call fcn.00533fb9
mov ecx, dword [esi + 0x764]
mov dword [esi + 0x9d0], 0x21
call fcn.00534791
mov ecx, dword [esi + 0x768]
call fcn.00533fd9
mov ecx, dword [esi + 0x76c]
call fcn.00533fd9
mov eax, dword [esi + 0x7c]
movsd xmm1, qword [esi + 0x648]
movsd xmm0, qword [esi + 0x650]
movsd xmm2, qword [esi + 0x638]
mov ecx, dword [esi + 0xd8]
mov edx, dword [esi + 0xdc]
movsd qword [eax + 0x10], xmm1
movsd xmm1, qword [esi + 0x640]
movsd qword [eax + 0x18], xmm0
movsd qword [eax], xmm2
movsd qword [eax + 8], xmm1
call fcn.00461f56
mov eax, dword [ebp + 8]
jmp 0x538399
mov eax, dword [esi + 0x8c]
lea edx, [esi + 0x638]
mov dword [edx], edi
mov dword [edx + 4], ebx
mov dword [edx + 8], eax
mov eax, dword [esi + 0x90]
mov dword [edx + 0xc], eax
mov eax, dword [esi + 0x88]
mov dword [edx + 0x10], eax
mov eax, dword [esi + 0x94]
mov dword [edx + 0x14], eax
mov eax, dword [esi + 0x9c]
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], ecx
push 0x108
push edx
lea eax, [esi + 0x380]
push eax
call fcn.0058a110
add esp, 0xc
movzx ecx, word [esi + 0x458]
movzx eax, word [esi + 0x45a]
xor edx, edx
mov dword [esi + 0x98], ecx
imul ecx, eax
mov dword [esi + 0x78], eax
test ecx, 0xc0000000
mov dword [esi + 8], ecx
setne al
jne 0x539f5c
mov dl, al
mov byte [esi + 0x5a], 1
mov dword [esi + 0x9d0], 3
mov dword [esi + 0x1c], edx
mov ecx, edx
mov edx, 0x64b7b4
call fcn.0051f8fa
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x1c]
shl eax, 2
test eax, eax
mov dword [esi + 8], eax
js 0x539f5c
mov edx, 0x64b7c4
mov byte [esi + 0x5a], 1
call fcn.0051f8fa
mov edx, dword [esi + 8]
lea ecx, [esi + 0x10c]
mov byte [esi + 0x5a], 1
call fcn.005739d0
push 0x108
lea eax, [esi + 0x638]
push eax
lea eax, [esi + 0x158]
push eax
call fcn.0058a110
add esp, 0xc
mov eax, dword [esi + 0x110]
movzx ecx, word [esi + 0x230]
mov edx, dword [esi + 0x114]
and dword [esi + 0xa4], 0
and dword [esi + 0xa0], 0
and dword [esi + 0xac], 0
mov dword [esi + 0x1c], eax
movzx eax, word [esi + 0x232]
mov dword [esi + 0xa8], edx
mov dword [esi + 0x8c], edx
imul eax, ecx
lea ecx, [eax*4]
shr eax, 0x1e
mov dword [esi + 0xc0], ecx
mov dword [esi + 0xc4], eax
and dword [esi + 0xbc], 0
and dword [esi + 0xb8], 0
xor ecx, edx
or ecx, eax
jne 0x53b022
lea edx, [esi + 0x178]
lea ecx, [esi + 0xa0]
mov dword [esi + 0x9d0], 5
call fcn.0051c0ce
cmp dword [esi + 0xa0], 2
jne 0x539fca
mov eax, dword [esi + 0xa4]
mov dword [esi + 0x64], eax
jmp 0x53a021
push 0xc8
lea eax, [esi + 0x570]
push eax
lea eax, [esi + 0x380]
push eax
call fcn.0058a110
add esp, 0xc
movzx eax, word [esi + 0x440]
mov ecx, dword [esi + 0x444]
mov byte [esi + 0x27], 1
mov dword [esi + 0x9d0], 0xc
mov dword [esi + 0x14], eax
movzx eax, word [esi + 0x442]
mov dword [esi + 8], eax
call fcn.0051f73c
mov ecx, dword [esi + 0x1c]
movzx eax, al
add ecx, dword [eax*4 + 0x53baf0]
jmp ecx
push 0x1f0
lea eax, [esi + 0x758]
push eax
lea edi, [esi + 0x380]
push edi
call fcn.0058a110
add esp, 0xc
mov ecx, edi
mov byte [esi + 0x25], 1
mov dword [esi + 0x9d0], 0x10
call fcn.0052b1e9
mov dword [esi + 0x14], eax
mov dword [esi + 0x20], edx
movzx eax, byte [esi + 0x568]
mov ecx, dword [esi + 0x1c]
add ecx, dword [eax*4 + 0x53bb04]
jmp ecx
mov al, 1
lea ecx, [esi + 0x3a0]
mov dword [esi + 0x9d0], 2
mov byte [esi + 5], al
mov byte [esi + 6], al
mov byte [esi + 7], al
call fcn.0052f4a9
xor edx, edx
push 3
pop eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x370]
movsd xmm0, qword [esi + 0x368]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x10], edx
mov dword [esi + 0x70], eax
movsd qword [esi + 0x68], xmm0
jmp 0x53a954
mov dword [esi + 0x9d0], 0x32
push 0x19
pop edx
mov ecx, str.attempt_to_divide_by_zero
push 0x64f590
call fcn.0059a2a0
pop eax
jmp 0x53b04b
lea ecx, [esi + 0x30]
lea edx, [esi + 0xa0]
call fcn.0045a5f2
mov ecx, dword [esi + 0x30]
mov edx, dword [esi + 0x3c]
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 0x54]
movsd xmm0, qword [esi + 0x4c]
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0x38]
cmp ecx, 6
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0x40]
mov dword [esi + 0x64], eax
mov dword [esi + 0x120], edi
movsd qword [esi + 0x118], xmm0
mov dword [esi + 8], edx
mov dword [esi + 0x18], ecx
mov edx, dword [esi + 0x44]
mov ecx, dword [esi + 0x48]
mov dword [esi + 0x14], edx
mov dword [esi + 0x20], ecx
jne 0x53a47c
cmp dword [esi + 0x64], 0
je 0x53a463
mov edx, dword [esi + 0x64]
movzx eax, word [edx + 0x1a]
movzx ecx, word [edx + 0x1e]
movzx edi, word [edx + 0x20]
mov dword [esi + 8], eax
mov al, byte [edx + 0x26]
imul ebx, dword [esi + 8], 0xa
test ecx, ecx
mov byte [esi + 0xc], al
movzx eax, word [edx + 0x1c]
movzx edx, word [edx + 0x22]
mov dword [esi + 0xb8], ecx
mov dword [esi + 8], ebx
mov ebx, dword [esi + 8]
mov ecx, eax
movzx ecx, di
mov dword [esi + 0xbc], eax
mov dword [esi + 0x88], eax
movzx eax, word [esi + 0x232]
mov dword [esi + 0x94], edx
mov dword [esi + 0xc0], ecx
mov dword [esi + 0x10], ecx
mov dword [esi + 0xc4], edx
mov cl, byte [esi + 0xc]
movzx edx, word [esi + 0x230]
mov dword [esi + 0x18], eax
mov byte [esi + 0xd0], cl
mov dword [esi + 0xc8], ebx
mov dword [esi + 0xcc], 1
mov word [esi + 0x14], dx
jne 0x53a0d6
cmp di, word [esi + 0x14]
mov eax, edi
jne 0x53a0d6
mov eax, dword [esi + 0x94]
mov ecx, dword [esi + 0x88]
add eax, ecx
xor ecx, ecx
cmp dword [esi + 0x18], eax
sbb ecx, ecx
jae 0x53a960
movzx eax, word [esi + 0x198]
cmp byte [esi + 0x25e], 0
movzx edx, word [esi + 0x19a]
lea ecx, [eax*4]
cmovne ecx, eax
imul edx, ecx
mov ecx, dword [esi + 0x158]
mov dword [esi + 8], edx
or ecx, dword [esi + 0x15c]
je 0x53aacc
mov eax, dword [esi + 0x160]
mov ecx, dword [esi + 0x164]
cmp eax, dword [esi + 8]
mov edx, ecx
sbb edx, 0
jae 0x53aaba
mov dword [esi + 0x10], 0
push 3
pop ecx
mov dword [esi + 0xc], ecx
mov dword [esi + 8], ecx
jmp 0x53a477
mov dword [esi + 0x18], 0
mov dword [esi + 0x64], 0x80000003
push 2
pop eax
mov dword [esi + 0xc], eax
jmp 0x53ae6b
mov eax, dword [esi + 0x120]
movsd xmm0, qword [esi + 0x118]
mov dword [esi + 0xf8], eax
movsd qword [esi + 0xf0], xmm0
jmp 0x53ae6b
mov eax, ecx
and eax, 0xffffff00
jmp 0x53aff0
mov eax, dword [esi + 0x10]
xor ecx, ecx
shl eax, 2
mov dword [esi + 0x10], eax
mul dword [esi + 0x88]
mov edx, 0x64ca74
setno cl
mov dword [esi + 8], eax
call fcn.004af3e6
mov edx, dword [esi + 0x1c]
lea ecx, [esi + 0x30]
push 0x64ca84
push dword [esi + 8]
push dword [esi + 0x8c]
call fcn.0041769f
add esp, 0xc
mov eax, dword [esi + 0x30]
xor ecx, ecx
mov edi, dword [esi + 0x38]
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0xc], edi
mul dword [esi + 0x94]
mov edx, dword [esi + 0x34]
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0x3c]
setno cl
mov dword [esi + 8], eax
mov dword [esi + 0x1c], edx
mov edx, 0x64ca94
call fcn.004af3e6
mov edx, dword [esi + 0xc]
lea ecx, [esi + 0x30]
push 0x64caa4
push dword [esi + 8]
push dword [esi + 0x1c]
call fcn.0041769f
add esp, 0xc
mov ecx, dword [esi + 0x38]
mov eax, dword [esi + 0x30]
mov edi, dword [esi + 0x34]
mov edx, dword [esi + 0x10]
mov dword [esi + 8], ecx
mov ecx, dword [esi + 0x3c]
mov dword [esi + 0x1c], ecx
mov ecx, dword [esi + 0x14]
test edx, edx
je 0x53aa0c
mov byte [ecx], 0
inc ecx
dec edx
jmp 0x53aa01
mov dword [esi + 0x9d0], 5
lea ecx, [esi + 0xa0]
lea edx, [esi + 0x178]
push edi
push eax
call fcn.0051c433
pop eax
pop ecx
lea ecx, [esi + 0x30]
lea edx, [esi + 0xa0]
call fcn.0052f65f
mov eax, dword [esi + 0x30]
cmp eax, 6
mov dword [esi + 0xc], eax
jne 0x53ae31
mov ecx, dword [esi + 0x1c]
test ecx, ecx
je 0x53ae1f
mov eax, dword [esi + 8]
dec ecx
mov byte [eax], 0
inc eax
mov dword [esi + 8], eax
jmp 0x53aa4b
sub eax, dword [esi + 8]
sbb ecx, 0
mov dword [esi + 0x160], eax
mov dword [esi + 0x164], ecx
mov edx, dword [esi + 8]
lea ecx, [esi + 0x14c]
call fcn.005739d0
mov eax, dword [esi + 0x158]
or eax, dword [esi + 0x15c]
je 0x53ab0f
mov edx, dword [esi + 8]
xor ecx, ecx
mov eax, dword [esi + 0x164]
dec ecx
add edx, dword [esi + 0x160]
adc eax, 0
cmovb eax, ecx
cmovb edx, ecx
mov dword [esi + 0x160], edx
mov dword [esi + 0x164], eax
mov eax, dword [esi + 0x154]
mov edi, dword [esi + 0x150]
mov byte [esi + 0x5b], 1
mov dword [esi + 0x9d0], 6
lea ecx, [esi + 0xa0]
lea edx, [esi + 0x178]
push eax
mov dword [esi + 0x88], edi
push edi
call fcn.0051c433
pop eax
pop ecx
lea ecx, [esi + 0x30]
lea edx, [esi + 0xa0]
mov byte [esi + 0x5b], 1
call fcn.0052f65f
mov eax, dword [esi + 0x30]
cmp eax, 6
mov dword [esi + 0xc], eax
jne 0x53ac93
movzx ebx, word [esi + 0x14]
mov edx, dword [esi + 0x10]
lea edi, [esi + 0xa0]
lea eax, [esi + 0x14c]
mov ecx, edi
push eax
push dword [esi + 0xc4]
call fcn.0045a5a3
pop eax
pop ecx
lea eax, [ebx*4]
mov dword [esi + 0x10], ebx
mov ebx, dword [esi + 0x1c]
mul dword [esi + 0x18]
seto ch
cmp eax, dword [esi + 0x8c]
mov dword [esi + 8], eax
seta cl
xor edx, edx
or cl, ch
cmovne ebx, edx
mov edx, dword [edi]
mov dword [esi + 0x1c], ebx
cmp edx, 0x80000000
mov dword [esi + 0xc], edx
sete dl
or dl, cl
mov byte [esi + 0x18], dl
je 0x53ad2a
lea edx, [esi + 0x30]
lea eax, [esi + 0xc0]
lea edi, [esi + 0x118]
lea ecx, [esi + 0xc4]
mov byte [esi + 0x34c], 2
mov dword [esi + 0x348], 0x80000000
mov dword [esi + 0x9d0], 8
mov dword [edx], str.Image_dimensions______are_too_large
mov dword [edx + 4], 3
and dword [edx + 0x10], 0
mov dword [edi], eax
mov eax, fcn.004465e0
mov dword [edx + 8], edi
mov dword [edx + 0xc], 2
mov dword [edi + 4], eax
mov dword [edi + 8], ecx
lea ecx, [esi + 0x374]
mov dword [edi + 0xc], eax
call fcn.00401eab
mov ecx, dword [esi + 0x37c]
mov edx, dword [esi + 0x378]
mov eax, dword [esi + 0x374]
mov dword [esi + 0xf4], ecx
mov ecx, dword [esi + 0x34c]
mov dword [esi + 0xf0], edx
mov edx, dword [esi + 0x350]
mov dword [esi + 0x20], eax
mov dword [esi + 8], ecx
mov ecx, dword [esi + 0x354]
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0xa4]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0xc]
call fcn.0041e52f
mov dword [esi + 0x14], 0x80000006
mov dword [esi + 0x64], 0x80000000
push 4
pop eax
mov dword [esi + 0xc], eax
jmp 0x53ae6b
mov edx, dword [esi + 0x38]
mov ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0x34]
movsd xmm0, qword [esi + 0x4c]
mov dword [esi + 8], edx
mov dword [esi + 0x10], ecx
mov edx, dword [esi + 0x54]
mov ecx, dword [esi + 0x40]
mov dword [esi + 0x64], eax
movsd qword [esi + 0xf0], xmm0
mov dword [esi + 0xf8], edx
mov dword [esi + 0x18], ecx
mov edx, dword [esi + 0x44]
mov ecx, dword [esi + 0x48]
mov dword [esi + 0x14], edx
mov dword [esi + 0x20], ecx
mov ecx, dword [esi + 0x14c]
mov edx, dword [esi + 0x88]
call fcn.0041b0e1
jmp 0x53ae6b
mov al, ch
movsd xmm0, qword [esi + 0xa4]
movsd xmm1, qword [esi + 0xac]
mov ecx, dword [esi + 0xc]
mov edx, 0x5c86d0
mov dword [esi + 0x9d0], 9
xor al, 1
movsd qword [esi + 0x3c], xmm1
movsd qword [esi + 0x34], xmm0
mov dword [esi + 0x30], ecx
movzx ecx, al
call fcn.004af3e6
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0x1c]
push 0x5c86e0
push dword [esi + 0x8c]
call fcn.00419322
pop ecx
pop edi
mov dword [esi + 0x1c], eax
mov dword [esi + 0xc], edx
and dword [esi + 0xc], 0xfffffffc
mov dword [esi + 8], 0
mov dword [esi + 0x14], 0
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 8]
mov edx, 0
cmp ecx, eax
sbb dword [esi + 0x14], 0xffffffff
cmp ecx, eax
cmovae ecx, edx
cmp dword [esi + 0xc], 0
mov dword [esi + 8], ecx
je 0x53ae14
cmp dword [esi + 0x1c], 0
je 0x53ae14
mov ecx, dword [esi + 0x1c]
push 4
pop edx
call fcn.0045a4c8
mov edx, dword [esi + 8]
xorps xmm0, xmm0
sub edx, dword [esi + 0xb8]
cmp edx, dword [esi + 0xc0]
jae 0x53adfe
mov eax, dword [esi + 0x14]
sub eax, dword [esi + 0xbc]
cmp eax, dword [esi + 0xc4]
jae 0x53adfe
lea ecx, [esi + 0x30]
push 0x64cab4
push eax
call fcn.0051c60d
pop ecx
pop edx
movss xmm0, dword [eax]
mov eax, dword [esi + 0x1c]
inc dword [esi + 8]
add dword [esi + 0xc], 0xfffffffc
movss dword [eax], xmm0
add eax, 4
mov dword [esi + 0x1c], eax
jmp 0x53ad95
mov ecx, dword [esi + 0x30]
mov edx, dword [esi + 0x34]
call fcn.0041b0e1
mov dword [esi + 0x9d0], 4
push 6
pop eax
mov dword [esi + 0xc], eax
jmp 0x53ae75
mov edx, dword [esi + 0x38]
mov ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0x34]
movsd xmm0, qword [esi + 0x4c]
mov dword [esi + 8], edx
mov dword [esi + 0x10], ecx
mov edx, dword [esi + 0x54]
mov ecx, dword [esi + 0x40]
mov dword [esi + 0x64], eax
movsd qword [esi + 0xf0], xmm0
mov dword [esi + 0xf8], edx
mov dword [esi + 0x18], ecx
mov edx, dword [esi + 0x44]
mov ecx, dword [esi + 0x48]
mov dword [esi + 0x14], edx
mov dword [esi + 0x20], ecx
mov dword [esi + 0x9d0], 4
lea ecx, [esi + 0x178]
call fcn.0052f4a9
cmp dword [esi + 0xc], 6
jne 0x53aedd
mov ecx, dword [esi + 0x10c]
mov edx, dword [esi + 0x110]
lea ebx, [esi + 0x30]
mov eax, dword [esi + 0x114]
lea edi, [esi + 0x158]
mov dword [ebx], ecx
mov dword [ebx + 4], edx
mov edx, dword [esi + 0x98]
mov dword [ebx + 8], eax
mov ecx, edi
push ebx
push dword [esi + 0x78]
call fcn.0045a5a3
pop eax
pop ecx
cmp dword [edi], 0x80000000
jne 0x53af12
push 2
pop eax
mov dword [esi + 0xc], eax
mov eax, 0x80000000
xor ecx, ecx
mov dword [esi + 0x18], 0
jmp 0x5390ed
mov eax, dword [esi + 0xf8]
movsd xmm0, qword [esi + 0xf0]
mov ecx, dword [esi + 0x10c]
mov edx, dword [esi + 0x110]
mov dword [esi + 0x370], eax
movsd qword [esi + 0x368], xmm0
call fcn.0041b0e1
mov edx, dword [esi + 0x10]
jmp 0x539f87
mov eax, dword [esi + 0x158]
mov edx, dword [esi + 0x168]
mov dword [esi + 8], eax
mov eax, dword [esi + 0x15c]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x160]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x164]
mov dword [esi + 0x14], eax
push 6
pop eax
mov dword [esi + 0xc], eax
push 3
pop ecx
xor eax, eax
jmp 0x5390ed
mov edx, dword [esi + 0x20]
jmp 0x5390ed
mov al, 1
mov dword [esi + 0x9d0], 2
mov byte [esi + 5], al
mov byte [esi + 6], al
mov byte [esi + 7], al
push 0x19
pop edx
mov ecx, str.attempt_to_divide_by_zero
push 0x64f494
call fcn.0059a2a0
pop eax
jmp 0x53b04b
lea eax, [esi + 0x30]
mov dword [esi + 0x9d0], 5
lea ecx, [esi + 0xa0]
lea edx, [esi + 0xb8]
and dword [eax], 0
push 0x64ca64
push eax
call fcn.0059a8e7
pop eax
pop ecx
ud2