Function at 0x475850
Capabilities:
Encode data using xor
Get file size
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x54b160
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb00
push esi
mov esi, dword [ebp + 8]
xor eax, eax
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x1b4]
push edi
mov dword [ebp - 0x24], ecx
mov ecx, esi
push eax
call fcn.00478d90
cmp byte [0x5cc2dc], 0
mov dword [ebp - 4], 0
je 0x4758db
mov dword [ebp - 0x30], 0xa4d6a0
lea ecx, [esi + 0x30]
mov edx, dword [ebp - 0x30]
sub edx, 0x4ec750
cmp dword [ecx + 0x14], 8
jb 0x4758b4
mov ecx, dword [ecx]
cmp dword [ebp - 0x1a0], 8
lea eax, [ebp - 0x1b4]
push ecx
cmovae eax, dword [ebp - 0x1b4]
push eax
movzx eax, word [0x5cc2dc]
push edx
push eax
call fcn.004bad80
add esp, 0x10
cmp byte [0x5cb2d0], 0
lea edi, [esi + 0x30]
mov dword [ebp - 0x90], edi
mov eax, edi
je 0x475c97
cmp dword [edi + 0x14], 8
jb 0x4758fb
mov eax, dword [edi]
push dword [edi + 0x10]
xor ecx, ecx
mov dword [ebp - 0x118], 0
mov word [ebp - 0x118], cx
lea ecx, [ebp - 0x118]
push eax
mov dword [ebp - 0x108], 0
mov dword [ebp - 0x104], 7
call fcn.0041ffd0
mov dword [ebp - 0x18], 3
mov eax, dword [ebp - 0x108]
test eax, eax
jne 0x47595e
mov dword [ebp - 0xe8], 3
mov dword [ebp - 0xe4], 0x5cb2dc
mov byte [ebp - 0x14], al
jmp 0x475b5d
xor ecx, ecx
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x11c], 7
mov word [ebp - 0x130], cx
push eax
lea ecx, [ebp - 0x130]
mov byte [ebp - 4], 2
call fcn.00479110
cmp dword [ebp - 0x104], 8
lea ecx, [ebp - 0x118]
mov eax, dword [ebp - 0x108]
lea esi, [ebp - 0x118]
cmovae ecx, dword [ebp - 0x118]
cmovae esi, dword [ebp - 0x118]
mov dword [ebp - 0x30], esi
lea edi, [ecx + eax*2]
push edi
push esi
call fcn.00474f70
mov esi, eax
mov dword [ebp - 0x10], eax
add esp, 8
cmp esi, edi
je 0x4759ec
movzx eax, word [esi]
cmp eax, 0x5c
je 0x4759e2
cmp eax, 0x2f
jne 0x4759e9
add esi, 2
cmp esi, edi
jne 0x4759d5
mov dword [ebp - 0x10], esi
mov ecx, dword [ebp - 0x30]
cmp esi, ecx
je 0x475a22
mov eax, edi
sub eax, esi
and eax, 0xfffffffe
cmp eax, 6
jl 0x475a22
mov eax, dword [esi]
and eax, 0xffffffdf
sub eax, 0x3a0041
cmp eax, 0x1a
jae 0x475a22
movzx eax, word [esi + 4]
cmp eax, 0x5c
je 0x475a1c
cmp eax, 0x2f
jne 0x475a22
add esi, 4
mov dword [ebp - 0x10], esi
mov eax, esi
sub eax, ecx
sar eax, 1
push eax
push ecx
lea ecx, [ebp - 0x130]
call fcn.0041fd60
xor eax, eax
mov byte [ebp - 0x14], 0
xor edx, edx
mov dword [ebp - 0x28], eax
cmp esi, edi
je 0x475ae3
movzx eax, word [esi]
cmp eax, 0x5c
je 0x475a55
cmp eax, 0x2f
jne 0x475a5c
add esi, 2
cmp esi, edi
jne 0x475a48
cmp esi, edi
je 0x475a74
movzx eax, word [esi]
cmp eax, 0x5c
je 0x475a74
cmp eax, 0x2f
je 0x475a74
add esi, 2
cmp esi, edi
jne 0x475a60
mov ecx, dword [ebp - 0x10]
mov eax, esi
sub eax, ecx
sar eax, 1
push eax
push ecx
lea ecx, [ebp - 0x130]
call fcn.0041fd60
cmp dword [ebp - 0x11c], 8
lea eax, [ebp - 0x130]
cmovae eax, dword [ebp - 0x130]
push eax
call fcn.00516b39
mov dword [ebp - 0x14], eax
mov eax, edx
test edx, edx
je 0x475acc
lea ecx, [edx - 2]
cmp ecx, 0x79
ja case.0x475abc.4
movzx eax, byte [ecx + 0x4776e4]
jmp dword [eax*4 + 0x4776dc]
mov eax, edx
jmp 0x475acc
mov eax, edx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], esi
cmp esi, edi
jne 0x475a48
test eax, eax
je 0x475ae3
mov eax, dword [ebp - 0x28]
test eax, eax
cmovne edx, eax
mov dword [ebp - 0xe8], edx
mov edx, dword [ebp - 0x11c]
mov dword [ebp - 0xe4], 0x5cb2dc
mov byte [ebp - 4], 1
cmp edx, 8
jb 0x475b37
mov ecx, dword [ebp - 0x130]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x475b2d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x477222
push edx
push ecx
call fcn.004b9160
add esp, 8
mov esi, dword [ebp + 8]
xor eax, eax
mov edi, dword [ebp - 0x90]
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x11c], 7
mov word [ebp - 0x130], ax
mov edx, dword [ebp - 0x104]
mov byte [ebp - 4], 0
cmp edx, 8
jb 0x475ba1
mov ecx, dword [ebp - 0x118]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x475b97
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x477227
push edx
push ecx
call fcn.004b9160
add esp, 8
xor eax, eax
mov dword [ebp - 0x108], 0
mov dword [ebp - 0x104], 7
mov word [ebp - 0x118], ax
cmp byte [ebp - 0x14], al
jne 0x475cbc
cmp dword [edi + 0x14], 8
mov eax, edi
jb 0x475bd1
mov eax, dword [edi]
push dword [edi + 0x10]
xor ecx, ecx
mov dword [ebp - 0x19c], 0
mov word [ebp - 0x19c], cx
lea ecx, [ebp - 0x19c]
push eax
mov dword [ebp - 0x18c], 0
mov dword [ebp - 0x188], 7
call fcn.0041ffd0
mov dword [ebp - 0x18], 0xf
lea eax, [ebp - 0x19c]
mov byte [ebp - 4], 3
push eax
call fcn.004787b0
mov edx, dword [ebp - 0x188]
add esp, 4
test al, al
mov byte [ebp - 4], 0
sete al
mov byte [ebp + 0xb], al
cmp edx, 8
jb 0x475c70
mov ecx, dword [ebp - 0x19c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x475c63
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x47722c
push edx
push ecx
call fcn.004b9160
mov al, byte [ebp + 0xb]
add esp, 8
xor ecx, ecx
mov dword [ebp - 0x18c], 0
mov dword [ebp - 0x188], 7
mov word [ebp - 0x19c], cx
test al, al
jne 0x477231
jmp 0x475cbc
cmp dword [edi + 0x14], 8
jb 0x475c9f
mov eax, dword [edi]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
test eax, eax
je 0x475cbc
cmp eax, 0x50
je 0x475cbc
cmp eax, 0xb7
jne 0x477271
xor eax, eax
mov dword [ebp - 0x25c], 0
xorps xmm0, xmm0
mov dword [ebp - 0x24c], 0
mov dword [ebp - 0x248], 7
mov word [ebp - 0x25c], ax
mov dword [ebp - 0x244], eax
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x23c], eax
movlpd qword [ebp - 0x234], xmm0
movlpd qword [ebp - 0x22c], xmm0
cmp dword [ebp - 0x1a0], 8
lea eax, [ebp - 0x27c]
mov dword [ebp - 0x260], eax
lea ecx, [ebp - 0x27c]
lea eax, [ebp - 0x1b4]
mov byte [ebp - 4], 5
cmovae eax, dword [ebp - 0x1b4]
push ecx
push eax
mov dword [ebp - 0x27c], 0x478930
mov dword [ebp - 0x278], 0x478bb0
mov dword [ebp - 0x274], 0x478ce0
mov dword [ebp - 0x270], 0x478c80
mov dword [ebp - 0x26c], 0x478c20
mov dword [ebp - 0x268], 0x4788d0
mov dword [ebp - 0x264], 0x478cb0
call fcn.004899a0
mov edi, eax
add esp, 8
mov dword [ebp - 0x1c], edi
test edi, edi
je 0x477284
push edi
call fcn.00489840
add esp, 4
test eax, eax
jne 0x477536
lea eax, [ebp - 0x2b0]
push eax
push edi
call fcn.00489810
add esp, 8
test eax, eax
jne 0x477546
push 0xb
mov byte [ebp - 0x50], al
call fcn.0045c2e0
add esp, 4
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0x3f800000
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov edx, dword [ebp - 0x2b0]
lea eax, [esi + 0x88]
mov ecx, dword [eax]
mov byte [ebp - 4], 0xe
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x38], ecx
nop
mov ecx, dword [esi + 0x8c]
nop
mov eax, dword [eax]
nop
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
test edx, edx
je 0x4771a9
movd xmm1, eax
xor esi, esi
movd xmm0, edx
mov dword [ebp - 0x20], esi
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [ebp - 0x34], xmm1
test edx, edx
jle 0x4771a9
nop
push 0x105
lea eax, [ebp - 0x4fc]
push 0
push eax
call fcn.00518890
push 0x100
lea eax, [ebp - 0xb0c]
push 0
push eax
call fcn.00518890
push 0xff
lea eax, [ebp - 0xb0c]
push eax
push 0
push 0
push 0x104
lea eax, [ebp - 0x4fc]
push eax
lea eax, [ebp - 0x364]
push eax
push edi
call fcn.00489760
add esp, 0x38
test eax, eax
jne 0x477212
mov ecx, dword [ebp - 0x344]
test ecx, ecx
je 0x475ebb
cmp byte [ebp + eax - 0x4fc], 0x2f
jne 0x475eb6
mov byte [ebp + eax - 0x4fc], 0x5c
inc eax
cmp eax, ecx
jb 0x475ea4
mov eax, dword [ebp - 0x330]
shr eax, 4
and al, 1
jne 0x47717a
xor eax, eax
mov dword [ebp - 0x100], 0
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0xec], 7
mov word [ebp - 0x100], ax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], 7
mov word [ebp - 0x80], ax
mov byte [ebp - 4], 0x10
cmp byte [0x5cb2d0], al
je 0x476ab7
mov edx, dword [0x5cb2d8]
mov ecx, edx
lea esi, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x475f20
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x100]
call fcn.0041ffd0
lea ecx, [ebp - 0x4fc]
mov dword [ebp - 0x1cc], 0
mov dword [ebp - 0x1bc], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x1b8], 0xf
mov byte [ebp - 0x1cc], 0
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x475f70
sub ecx, edx
lea eax, [ebp - 0x4fc]
push ecx
push eax
lea ecx, [ebp - 0x1cc]
call fcn.0041fee0
lea eax, [ebp - 0x1cc]
mov byte [ebp - 4], 0x11
push eax
lea eax, [ebp - 0x2cc]
push eax
call fcn.004b97c0
add esp, 8
mov edx, dword [ebp - 0x90]
mov ecx, edx
mov byte [ebp - 4], 0x12
cmp dword [edx + 0x14], 8
jb 0x475fba
mov ecx, dword [edx]
push dword [edx + 0x10]
push ecx
push 0
mov ecx, eax
call fcn.00435fe0
or dword [ebp - 0x18], 0x10
xor ecx, ecx
movups xmm0, xmmword [eax]
movq xmm1, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov edx, dword [ebp - 0x6c]
movq qword [ebp - 0x2c], xmm1
movq qword [ebp - 0x36c], xmm1
movups xmmword [ebp - 0xd8], xmm0
movups xmmword [ebp - 0x37c], xmm0
cmp edx, 8
jb 0x476047
mov ecx, dword [ebp - 0x80]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x476031
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x477222
push edx
push ecx
call fcn.004b9160
movups xmm0, xmmword [ebp - 0xd8]
add esp, 8
movq xmm1, qword [ebp - 0x2c]
mov edx, dword [ebp - 0x2b8]
movq qword [ebp - 0x70], xmm1
mov byte [ebp - 4], 0x11
movups xmmword [ebp - 0x80], xmm0
cmp edx, 8
jb 0x476094
mov ecx, dword [ebp - 0x2cc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x47608a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x477222
push edx
push ecx
call fcn.004b9160
add esp, 8
mov edx, dword [ebp - 0x1b8]
xor eax, eax
mov dword [ebp - 0x2bc], 0
mov dword [ebp - 0x2b8], 7
mov word [ebp - 0x2cc], ax
mov byte [ebp - 4], 0x10
cmp edx, 0x10
jb 0x4760ef
mov ecx, dword [ebp - 0x1cc]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4760e5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x477222
push edx
push ecx
call fcn.004b9160
add esp, 8
cmp dword [ebp - 0x6c], 8
lea edi, [ebp - 0x80]
mov esi, dword [ebp - 0x70]
cmovae edi, dword [ebp - 0x80]
mov dword [ebp - 0x1bc], 0
mov dword [ebp - 0x1b8], 0xf
mov byte [ebp - 0x1cc], 0
mov dword [ebp + 8], edi
test esi, esi
je 0x4761de
push 0x100
lea eax, [ebp - 0x804]
push 0
push eax
call fcn.00518890
add esp, 0xc
mov ecx, 0x557e94
mov edx, 0x100
movzx eax, word [ecx]
cmp ax, dx
jae 0x476191
movzx eax, al
add ecx, 2
mov byte [ebp + eax - 0x804], 1
cmp ecx, 0x557e98
jne 0x476143
lea eax, [esi - 1]
or ecx, 0xffffffff
cmp eax, ecx
cmovb ecx, eax
lea esi, [edi + ecx*2]
nop
movzx eax, word [esi]
cmp ax, dx
jae 0x476182
cmp byte [ebp + eax - 0x804], 0
jne 0x47618b
cmp esi, edi
je 0x4761de
sub esi, 2
jmp 0x476170
sub esi, edi
sar esi, 1
jmp 0x4761e1
lea eax, [esi - 1]
or ecx, 0xffffffff
cmp eax, ecx
cmovb ecx, eax
lea esi, [edi + ecx*2]
nop
movzx edi, word [esi]
mov eax, 0x5c
mov edx, 2
mov ecx, 0x557e94
cmp ax, di
je 0x4761d7
cmp edx, 1
je 0x4761cd
movzx eax, word [ecx + 2]
add ecx, 2
dec edx
cmp ax, di
jne 0x4761b7
test ecx, ecx
jne 0x4761d7
cmp esi, dword [ebp + 8]
je 0x4761de
sub esi, 2
jmp 0x4761a0
sub esi, dword [ebp + 8]
sar esi, 1
jmp 0x4761e1
or esi, 0xffffffff
xor eax, eax
mov dword [ebp - 0x68], 0
cmp dword [ebp - 0x70], esi
lea ecx, [ebp - 0x68]
mov word [ebp - 0x68], ax
lea eax, [ebp - 0x80]
cmovb esi, dword [ebp - 0x70]
cmp dword [ebp - 0x6c], 8
push esi
cmovae eax, dword [ebp - 0x80]
push eax
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 7
call fcn.0041ffd0
or dword [ebp - 0x18], 0x20
cmp dword [ebp - 0x54], 8
lea eax, [ebp - 0x68]
mov ecx, dword [ebp - 0x58]
cmovae eax, dword [ebp - 0x68]
mov byte [ebp - 4], 0x13
lea edi, [eax + ecx*2]
lea eax, [ebp - 0x68]
cmovae eax, dword [ebp - 0x68]
xor ecx, ecx
mov dword [ebp + 8], ecx
cmp eax, edi
je 0x476263
movzx esi, word [eax]
mov edx, ecx
shr ecx, 2
add eax, 2
shl edx, 6
add ecx, 0x9e3779b9
add edx, esi
add ecx, edx
xor dword [ebp + 8], ecx
mov ecx, dword [ebp + 8]
cmp eax, edi
jne 0x476241
mov edi, dword [ebp - 0x4c]
xor edx, edx
mov eax, ecx
div edi
cmp dword [ebp - 0x48], 0
mov esi, edx
mov dword [ebp - 0x14], esi
je 0x476302
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax + esi*4]
test ecx, ecx
je 0x476302
mov ecx, dword [ecx]
test ecx, ecx
je 0x476302
nop dword [eax + eax]
mov eax, dword [ecx + 4]
cmp dword [ebp + 8], eax
jne 0x4768da
cmp dword [ecx + 0x1c], 8
lea eax, [ecx + 8]
mov esi, dword [eax + 0x10]
jb 0x4762aa
mov eax, dword [eax]
cmp dword [ebp - 0x54], 8
lea edx, [ebp - 0x68]
mov edi, dword [ebp - 0x58]
cmovae edx, dword [ebp - 0x68]
mov dword [ebp - 0x28], edx
cmp edi, esi
jne 0x4762f6
test edi, edi
je 0x4768eb
movzx edx, word [edx]
movzx esi, word [eax]
cmp dx, si
jb 0x4762f6
sub dword [ebp - 0x28], eax
cmp dx, si
ja 0x4762f6
cmp edi, 1
je 0x4768eb
mov edx, dword [ebp - 0x28]
add eax, 2
dec edi
movzx edx, word [eax + edx]
movzx esi, word [eax]
cmp dx, si
jae 0x4762d8
mov edi, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x14]
mov ecx, dword [ecx]
test ecx, ecx
jne 0x476290
lea eax, [ebp - 0x4c]
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0xa8], eax
push 0x20
mov byte [ebp - 4], 0x14
mov word [ebp - 0xa0], 0
call fcn.004b9130
add esp, 4
mov dword [ebp - 0xa4], eax
xorps xmm0, xmm0
mov byte [ebp - 0xa0], 1
mov dword [eax], 0
lea ecx, [eax + 8]
mov dword [eax + 4], 0
lea eax, [ebp - 0x68]
movups xmmword [ecx], xmm0
push eax
movq qword [ecx + 0x10], xmm0
call fcn.004153e0
cmp dword [ebp - 0x3c], 0
mov edx, dword [ebp - 0x48]
mov byte [ebp - 0x9f], 1
lea ecx, [edx + 1]
jne 0x4768fa
push ecx
lea ecx, [ebp - 0x50]
call fcn.0045c140
mov ecx, dword [ebp - 0x4c]
cmp ecx, eax
cmovb ecx, eax
push ecx
lea ecx, [ebp - 0x50]
call fcn.00455a20
push dword [ebp + 8]
lea eax, [ebp - 0xa8]
push eax
lea eax, [ebp - 0x298]
push eax
lea ecx, [ebp - 0x50]
call fcn.00475500
mov esi, dword [ebp - 0xa4]
mov al, 1
mov byte [ebp + 0xb], al
mov byte [ebp - 4], 0x13
test esi, esi
je 0x4763e3
cmp byte [ebp - 0x9f], 0
je 0x4763d5
lea eax, [esi + 8]
push eax
push dword [ebp - 0xa8]
call fcn.00414260
add esp, 8
push 0x20
push esi
call fcn.004b9160
mov al, byte [ebp + 0xb]
add esp, 8
test al, al
je 0x476619
mov edx, dword [0x5cb2d8]
xor eax, eax
mov ecx, edx
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 7
mov word [ebp - 0xe0], ax
lea esi, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x476420
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0xe0]
call fcn.0041ffd0
cmp dword [ebp - 0x54], 8
lea eax, [ebp - 0x68]
push dword [ebp - 0x58]
cmovae eax, dword [ebp - 0x68]
lea ecx, [ebp - 0xe0]
push eax
mov byte [ebp - 4], 0x15
call fcn.0041fd60
cmp dword [ebp - 0xcc], 8
lea eax, [ebp - 0xe0]
push dword [ebp - 0xd0]
cmovae eax, dword [ebp - 0xe0]
xor ecx, ecx
mov dword [ebp - 0x160], 0
mov word [ebp - 0x160], cx
lea ecx, [ebp - 0x160]
push eax
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xb8], 0x5cb2dc
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x14c], 7
call fcn.0041ffd0
mov esi, dword [ebp - 0x18]
or esi, 0xc0
mov dword [ebp - 0x18], esi
lea eax, [ebp - 0xbc]
mov byte [ebp - 4], 0x16
push eax
lea eax, [ebp - 0x160]
push eax
call fcn.004755d0
add esp, 8
mov byte [ebp - 4], 0x15
test al, al
mov eax, dword [ebp - 0x14c]
sete byte [ebp + 0xb]
cmp eax, 8
jb 0x476509
inc eax
lea ecx, [ebp - 0x160]
push eax
push dword [ebp - 0x160]
call fcn.004205e0
xor eax, eax
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x14c], 7
mov word [ebp - 0x160], ax
cmp byte [ebp + 0xb], al
je 0x4765da
cmp dword [ebp - 0x54], 8
lea eax, [ebp - 0x68]
push dword [ebp - 0x58]
cmovae eax, dword [ebp - 0x68]
xor ecx, ecx
mov dword [ebp - 0x178], 0
mov word [ebp - 0x178], cx
lea ecx, [ebp - 0x178]
push eax
mov dword [ebp - 0x168], 0
mov dword [ebp - 0x164], 7
call fcn.0041ffd0
or esi, 0x300
mov dword [ebp - 0x18], esi
lea eax, [ebp - 0x178]
mov byte [ebp - 4], 0x17
push eax
call fcn.004787b0
add esp, 4
mov byte [ebp - 4], 0x15
test al, al
mov eax, dword [ebp - 0x164]
sete byte [ebp + 0xb]
cmp eax, 8
jb 0x4765b4
inc eax
lea ecx, [ebp - 0x178]
push eax
push dword [ebp - 0x178]
call fcn.004205e0
xor eax, eax
mov dword [ebp - 0x168], 0
mov dword [ebp - 0x164], 7
mov word [ebp - 0x178], ax
cmp byte [ebp + 0xb], al
jne 0x477556
mov eax, dword [ebp - 0xcc]
mov byte [ebp - 4], 0x13
cmp eax, 8
jb 0x4765fc
inc eax
lea ecx, [ebp - 0xe0]
push eax
push dword [ebp - 0xe0]
call fcn.004205e0
xor eax, eax
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 7
mov word [ebp - 0xe0], ax
cmp dword [ebp - 0x6c], 8
lea eax, [ebp - 0x80]
push dword [ebp - 0x70]
cmovae eax, dword [ebp - 0x80]
lea ecx, [ebp - 0x100]
push eax
call fcn.0041fd60
movd xmm0, dword [ebp - 0x20]
movd xmm1, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x10]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
mulss xmm0, dword [ebp - 0x34]
addss xmm0, xmm1
cvttss2si eax, xmm0
xchg dword [ecx], eax
push dword [ebp - 0x1c]
call fcn.004899f0
add esp, 4
test eax, eax
jne 0x477664
cmp dword [ebp - 0xec], 8
lea eax, [ebp - 0x100]
push 0
cmovae eax, dword [ebp - 0x100]
push 0x80
push 2
push 0
push 0
push 0xc0000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
mov dword [ebp - 0x8c], esi
mov byte [ebp - 4], 0x19
cmp esi, 0xffffffff
je 0x47763a
push 0
push dword [ebp - 0x348]
push 0
push 4
push 0
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov edi, eax
mov dword [ebp - 0x88], edi
mov byte [ebp - 4], 0x1b
test edi, edi
jne 0x476974
push eax
lea eax, [ebp - 0x17c]
push eax
push edi
push 0x5d34a0
call dword [sym.imp.KERNEL32.dll_InitOnceBeginInitialize]
test eax, eax
je 0x477625
cmp dword [ebp - 0x17c], edi
je 0x4767cb
mov dword [ebp - 0x1ec], 0x5d34a0
mov dword [ebp - 0x1e8], 4
cmp byte [0x5cc2dc], 0
mov byte [ebp - 4], 0x1c
je 0x476792
mov dword [ebp + 8], 0xbdb6d8
lea eax, [ebp - 0x394]
mov edi, dword [ebp + 8]
push eax
sub edi, 0x67a7f0
call fcn.00436440
add esp, 4
mov esi, eax
cmp dword [esi + 0x14], 0x10
mov byte [ebp - 4], 0x1d
jb 0x476749
mov esi, dword [esi]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [ebp - 0xec], 8
lea ecx, [ebp - 0x100]
push esi
cmovae ecx, dword [ebp - 0x100]
push eax
movzx eax, word [0x5cc2dc]
push ecx
push edi
push eax
call fcn.004bad80
add esp, 0x14
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x394]
call fcn.004166b0
mov esi, dword [ebp - 0x8c]
mov edi, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x24]
push 1
push 0x20
push str.BootstrapperFDFileMappingFailure
mov ecx, dword [ecx + 0x1c]
mov eax, dword [ecx]
call dword [eax + 0x18]
push 0
push 0
push 0x5d34a0
mov dword [ebp - 0x1e8], 0
mov byte [ebp - 4], 0x1b
call dword [sym.imp.KERNEL32.dll_InitOnceComplete]
test eax, eax
je 0x477625
lea eax, [ebp - 0x82]
push eax
push 0x100000
lea ecx, [ebp - 0x224]
call fcn.00431f20
mov eax, dword [ebp - 0x348]
mov byte [ebp - 4], 0x1e
mov dword [ebp - 0x28], 0
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x20]
mov eax, dword [ecx]
call dword [eax + 0x10]
push 0x100000
push dword [ebp - 0x224]
push dword [ebp - 0x1c]
call fcn.00489c70
mov ecx, dword [ebp - 0x28]
mov edx, eax
mov eax, dword [ebp + 8]
add ecx, edx
sub eax, edx
mov dword [ebp - 0x14], edx
add esp, 0xc
mov dword [ebp + 8], eax
mov dword [ebp - 0x28], ecx
test edx, edx
jle 0x4768be
movd xmm1, ecx
mov ecx, dword [ebp - 0x348]
cvtdq2ps xmm1, xmm1
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x557d40]
mov ecx, dword [ebp - 0x10]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
movd xmm0, dword [ebp - 0x20]
cvtdq2ps xmm0, xmm0
addss xmm0, xmm1
movd xmm1, dword [ebp - 0x38]
cvtdq2ps xmm1, xmm1
mulss xmm0, dword [ebp - 0x34]
addss xmm0, xmm1
cvttss2si eax, xmm0
xchg dword [ecx], eax
push 0
lea eax, [ebp - 0xc4]
mov dword [ebp - 0xc4], 0
push eax
push edx
push dword [ebp - 0x224]
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x4775fb
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc4], eax
jne 0x4775fb
mov eax, dword [ebp + 8]
test eax, eax
jg 0x4767f6
lea ecx, [ebp - 0x224]
mov byte [ebp - 4], 0x1b
call fcn.004320a0
jmp 0x476a56
xor edx, edx
div edi
cmp edx, esi
jne 0x476302
jmp 0x4762fc
test ecx, ecx
je 0x476302
xor al, al
jmp 0x4763e3
cmp ecx, dword [ebp - 0x40]
jbe 0x47638e
mov eax, edx
shr eax, 1
add eax, edx
cmp ecx, eax
cmovb ecx, eax
push ecx
lea ecx, [ebp - 0x50]
call fcn.0045c140
cmp eax, dword [ebp - 0x4c]
je 0x47638e
push eax
lea ecx, [ebp - 0x50]
call fcn.00455a20
mov edi, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x4c]
mov ecx, dword [edi + eax*4]
lea esi, [edi + eax*4]
test ecx, ecx
je 0x47638e
nop dword [eax]
mov eax, dword [ecx + 4]
xor edx, edx
div dword [ebp - 0x4c]
cmp dword [edi + edx*4], 0
lea edx, [edi + edx*4]
jne 0x476957
mov dword [edx], esi
mov esi, ecx
jmp 0x476965
mov eax, dword [ecx]
mov dword [esi], eax
mov eax, dword [edx]
mov eax, dword [eax]
mov dword [ecx], eax
mov eax, dword [edx]
mov dword [eax], ecx
mov ecx, dword [esi]
test ecx, ecx
je 0x47638e
mov edi, dword [ebp - 0x3c]
jmp 0x476940
push dword [ebp - 0x348]
push 0
push 0
push 2
push edi
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2a8], 0x4747b0
mov dword [ebp - 0x2a4], eax
mov edi, dword [ebp - 0x348]
mov esi, eax
mov byte [ebp - 4], 0x20
mov dword [ebp + 8], 0
nop dword [eax]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x20]
mov eax, dword [ecx]
call dword [eax + 0x10]
push 0x100000
push esi
push dword [ebp - 0x1c]
call fcn.00489c70
mov edx, eax
add esp, 0xc
mov eax, dword [ebp + 8]
sub edi, edx
add eax, edx
mov dword [ebp + 8], eax
test edx, edx
jle 0x476a2e
mov ecx, dword [ebp - 0x348]
xorps xmm0, xmm0
xorps xmm1, xmm1
cvtsi2ss xmm1, eax
mov eax, dword [ebp - 0x20]
cvtsi2sd xmm0, ecx
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x557d40]
mov ecx, dword [ebp - 0x10]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
mov eax, dword [ebp - 0x38]
addss xmm0, xmm1
xorps xmm1, xmm1
cvtsi2ss xmm1, eax
mulss xmm0, dword [ebp - 0x34]
addss xmm0, xmm1
cvttss2si eax, xmm0
xchg dword [ecx], eax
add esi, edx
test edi, edi
jg 0x4769b0
mov esi, dword [ebp - 0x8c]
mov edi, dword [ebp - 0x88]
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x476a52
push eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov byte [ebp - 4], 0x1b
push dword [ebp - 0x1c]
call fcn.004896d0
add esp, 4
test eax, eax
jne 0x47762a
test edi, edi
je 0x476a82
push edi
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call edi
mov dword [ebp - 0x88], 0
jmp 0x476a88
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
je 0x476a99
push esi
call edi
mov dword [ebp - 0x8c], 0
mov eax, dword [ebp - 0x54]
cmp eax, 8
jb 0x477129
inc eax
lea ecx, [ebp - 0x68]
push eax
push dword [ebp - 0x68]
call fcn.004205e0
jmp 0x477129
mov ecx, dword [ebp - 0x90]
mov eax, ecx
cmp dword [ecx + 0x14], 8
jb 0x476ac7
mov eax, dword [ecx]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyW]
push eax
lea eax, [ebp - 0x704]
push eax
call esi
lea ecx, [ebp - 0x4fc]
mov dword [ebp - 0x1e4], 0
mov dword [ebp - 0x1d4], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x1d0], 0xf
mov byte [ebp - 0x1e4], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x476b05
sub ecx, edx
lea eax, [ebp - 0x4fc]
push ecx
push eax
lea ecx, [ebp - 0x1e4]
call fcn.0041fee0
lea eax, [ebp - 0x1e4]
mov byte [ebp - 4], 0x22
push eax
lea eax, [ebp - 0x3ac]
push eax
call fcn.004b97c0
add esp, 8
cmp dword [eax + 0x14], 8
jb 0x476b43
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x704]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea ecx, [ebp - 0x3ac]
call fcn.00416700
mov edx, dword [ebp - 0x1d0]
mov byte [ebp - 4], 0x10
cmp edx, 0x10
jb 0x476b9a
mov ecx, dword [ebp - 0x1e4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x476b90
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x477222
push edx
push ecx
call fcn.004b9160
add esp, 8
lea eax, [ebp - 0x704]
mov dword [ebp - 0x1d4], 0
push eax
lea eax, [ebp - 0xa0c]
mov dword [ebp - 0x1d0], 0xf
push eax
mov byte [ebp - 0x1e4], 0
call esi
lea eax, [ebp - 0xa0c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
xor eax, eax
mov dword [ebp - 0x148], 0
lea ecx, [ebp - 0xa0c]
mov dword [ebp - 0x138], 0
mov dword [ebp - 0x134], 7
lea edx, [ecx + 2]
mov word [ebp - 0x148], ax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x476c02
sub ecx, edx
lea eax, [ebp - 0xa0c]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x148]
call fcn.0041ffd0
lea eax, [ebp - 0x148]
push eax
lea ecx, [ebp - 0x50]
call fcn.00478e90
mov esi, eax
lea ecx, [ebp - 0x50]
lea eax, [ebp - 0x148]
push eax
push esi
lea eax, [ebp - 0x180]
push eax
call fcn.00478820
cmp dword [ebp - 0x180], 0
je 0x476c5e
mov byte [ebp + 0xb], 0
jmp 0x476d16
lea eax, [ebp - 0x4c]
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xb4], eax
push 0x20
mov byte [ebp - 4], 0x24
mov word [ebp - 0xac], 0
call fcn.004b9130
add esp, 4
mov dword [ebp - 0xb0], eax
xorps xmm0, xmm0
mov word [ebp - 0xac], 0x101
mov dword [eax], 0
lea ecx, [eax + 8]
mov dword [eax + 4], 0
lea eax, [ebp - 0x148]
movups xmmword [ecx], xmm0
push eax
movq qword [ecx + 0x10], xmm0
call fcn.00415390
mov eax, dword [ebp - 0x48]
lea ecx, [ebp - 0x50]
inc eax
push eax
call fcn.00479280
push esi
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp - 0x2b4]
push eax
lea ecx, [ebp - 0x50]
call fcn.00475500
mov esi, dword [ebp - 0xb0]
mov byte [ebp + 0xb], 1
test esi, esi
je 0x476d16
cmp byte [ebp - 0xab], 0
je 0x476d0b
lea eax, [esi + 8]
push eax
push dword [ebp - 0xb4]
call fcn.00414260
add esp, 8
push 0x20
push esi
call fcn.004b9160
add esp, 8
mov eax, dword [ebp - 0x134]
mov byte [ebp - 4], 0x10
cmp eax, 8
jb 0x476d38
inc eax
lea ecx, [ebp - 0x148]
push eax
push dword [ebp - 0x148]
call fcn.004205e0
xor eax, eax
mov dword [ebp - 0x138], 0
mov dword [ebp - 0x134], 7
mov word [ebp - 0x148], ax
cmp byte [ebp + 0xb], al
je 0x476d7d
lea eax, [ebp - 0xa0c]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
test eax, eax
je 0x476d7d
cmp eax, 0x50
je 0x476d7d
cmp eax, 0xb7
jne 0x477674
movd xmm0, dword [ebp - 0x20]
movd xmm1, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x10]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
mulss xmm0, dword [ebp - 0x34]
addss xmm0, xmm1
cvttss2si eax, xmm0
xchg dword [ecx], eax
push edi
call fcn.004899f0
add esp, 4
test eax, eax
jne 0x477664
push eax
push 0x80
push 2
push eax
push eax
push 0xc0000000
lea eax, [ebp - 0x704]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
mov dword [ebp - 0x98], esi
mov byte [ebp - 4], 0x25
cmp esi, 0xffffffff
je 0x4776ab
push 0
push dword [ebp - 0x348]
push 0
push 4
push 0
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov edi, eax
mov dword [ebp - 0x94], edi
mov byte [ebp - 4], 0x27
test edi, edi
jne 0x477004
push eax
lea eax, [ebp - 0x184]
push eax
push edi
push 0x5d34a4
call dword [sym.imp.KERNEL32.dll_InitOnceBeginInitialize]
test eax, eax
je 0x477625
cmp dword [ebp - 0x184], edi
je 0x476ef4
mov dword [ebp - 0x20c], 0x5d34a4
mov dword [ebp - 0x208], 4
cmp byte [0x5cc2dc], 0
mov byte [ebp - 4], 0x28
je 0x476ebb
mov dword [ebp + 8], 0xcd3968
lea eax, [ebp - 0x3c4]
mov edi, dword [ebp + 8]
push eax
sub edi, 0x772a80
call fcn.00436440
add esp, 4
mov esi, eax
cmp dword [esi + 0x14], 0x10
mov byte [ebp - 4], 0x29
jb 0x476e80
mov esi, dword [esi]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
push eax
lea eax, [ebp - 0x704]
push eax
movzx eax, word [0x5cc2dc]
push edi
push eax
call fcn.004bad80
add esp, 0x14
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0x3c4]
call fcn.004166b0
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov eax, dword [ebp - 0x24]
push 1
push 0x20
push str.BootstrapperFDFileMappingFailure
mov ecx, dword [eax + 0x1c]
mov eax, dword [ecx]
call dword [eax + 0x18]
push 0
push 0
push 0x5d34a4
mov dword [ebp - 0x208], 0
mov byte [ebp - 4], 0x27
call dword [sym.imp.KERNEL32.dll_InitOnceComplete]
test eax, eax
je 0x477625
lea eax, [ebp - 0x81]
push eax
push 0x100000
lea ecx, [ebp - 0x218]
call fcn.00431f20
mov eax, dword [ebp - 0x348]
mov byte [ebp - 4], 0x2a
mov dword [ebp - 0x28], 0
mov dword [ebp + 8], eax
nop
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x20]
mov eax, dword [ecx]
call dword [eax + 0x10]
push 0x100000
push dword [ebp - 0x218]
push dword [ebp - 0x1c]
call fcn.00489c70
mov ecx, dword [ebp - 0x28]
mov edx, eax
mov eax, dword [ebp + 8]
add ecx, edx
sub eax, edx
mov dword [ebp - 0x14], edx
add esp, 0xc
mov dword [ebp + 8], eax
mov dword [ebp - 0x28], ecx
test edx, edx
jle 0x476fe8
movd xmm1, ecx
mov ecx, dword [ebp - 0x348]
cvtdq2ps xmm1, xmm1
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x557d40]
mov ecx, dword [ebp - 0x10]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
movd xmm0, dword [ebp - 0x20]
cvtdq2ps xmm0, xmm0
addss xmm0, xmm1
movd xmm1, dword [ebp - 0x38]
cvtdq2ps xmm1, xmm1
mulss xmm0, dword [ebp - 0x34]
addss xmm0, xmm1
cvttss2si eax, xmm0
xchg dword [ecx], eax
push 0
lea eax, [ebp - 0xc8]
mov dword [ebp - 0xc8], 0
push eax
push edx
push dword [ebp - 0x218]
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x477686
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0xc8], eax
jne 0x477686
mov eax, dword [ebp + 8]
test eax, eax
jg 0x476f20
lea ecx, [ebp - 0x218]
mov byte [ebp - 4], 0x27
call fcn.004320a0
jmp 0x4770e6
push dword [ebp - 0x348]
push 0
push 0
push 2
push edi
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2a0], 0x4747b0
mov dword [ebp - 0x29c], eax
mov edi, dword [ebp - 0x348]
mov esi, eax
mov byte [ebp - 4], 0x2c
mov dword [ebp + 8], 0
nop dword [eax]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x20]
mov eax, dword [ecx]
call dword [eax + 0x10]
push 0x100000
push esi
push dword [ebp - 0x1c]
call fcn.00489c70
mov edx, eax
add esp, 0xc
mov eax, dword [ebp + 8]
sub edi, edx
add eax, edx
mov dword [ebp + 8], eax
test edx, edx
jle 0x4770be
mov ecx, dword [ebp - 0x348]
xorps xmm0, xmm0
xorps xmm1, xmm1
cvtsi2ss xmm1, eax
mov eax, dword [ebp - 0x20]
cvtsi2sd xmm0, ecx
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x557d40]
mov ecx, dword [ebp - 0x10]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
mov eax, dword [ebp - 0x38]
addss xmm1, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
mulss xmm1, dword [ebp - 0x34]
addss xmm1, xmm0
cvttss2si eax, xmm1
xchg dword [ecx], eax
add esi, edx
test edi, edi
jg 0x477040
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x94]
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x4770e2
push eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov byte [ebp - 4], 0x27
push dword [ebp - 0x1c]
call fcn.004896d0
add esp, 4
test eax, eax
jne 0x47762a
test edi, edi
je 0x477112
push edi
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call edi
mov dword [ebp - 0x94], 0
jmp 0x477118
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
je 0x477129
push esi
call edi
mov dword [ebp - 0x98], 0
mov eax, dword [ebp - 0x6c]
cmp eax, 8
jb 0x47713e
inc eax
lea ecx, [ebp - 0x80]
push eax
push dword [ebp - 0x80]
call fcn.004205e0
xor eax, eax
mov dword [ebp - 0x70], 0
mov word [ebp - 0x80], ax
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0x6c], 7
mov byte [ebp - 4], 0xe
cmp eax, 8
jb 0x477174
inc eax
lea ecx, [ebp - 0x100]
push eax
push dword [ebp - 0x100]
call fcn.004205e0
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp - 0x1c]
push edi
call fcn.004898d0
add esp, 4
test eax, eax
je 0x47719c
cmp eax, 0xffffff9c
jne 0x4776d0
mov ecx, dword [ebp - 0x30]
dec ecx
cmp esi, ecx
jne 0x4776d0
inc esi
mov dword [ebp - 0x20], esi
cmp esi, dword [ebp - 0x30]
jl 0x475e40
push edi
call fcn.00489690
add esp, 4
lea ecx, [ebp - 0x50]
call fcn.00474b10
mov eax, dword [ebp - 0x248]
cmp eax, 8
jb 0x4771d8
inc eax
lea ecx, [ebp - 0x25c]
push eax
push dword [ebp - 0x25c]
call fcn.004205e0
xor eax, eax
mov dword [ebp - 0x24c], 0
lea ecx, [ebp - 0x1b4]
mov dword [ebp - 0x248], 7
mov word [ebp - 0x25c], ax
call fcn.00416700
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret 4
push eax
push str.Error_calling_unzGetCurrentFileInfo
push str.Failed__s:_UZ_d
call fcn.004bce00
call fcn.0051bb5f
call fcn.0051bb5f
call fcn.0051bb5f
lea eax, [ebp - 0x294]
push eax
lea ecx, [ebp - 0xe8]
call fcn.004224e0
mov ecx, eax
mov byte [ebp - 4], 4
call fcn.004200e0
mov ecx, edi
mov esi, eax
call fcn.004200f0
push esi
lea ecx, [ebp - 0xe8]
mov edi, eax
call fcn.00417320
push eax
push edi
push str.Failed_to_create_destination_folder:__S__error:__d___s_
call fcn.004bce00
push eax
mov ecx, edi
call fcn.004200f0
push eax
push str.Failed_to_create_destination_folder:__S__error:__d_
call fcn.004bce00
push 0
push 0x80
push 3
push 0
push 0
push 0x80000000
lea ecx, [ebp - 0x1b4]
call fcn.004200f0
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
lea ecx, [ebp - 0x314]
mov dword [ebp + 8], edi
call fcn.00415370
mov byte [ebp - 4], 6
cmp edi, 0xffffffff
je 0x477451
push 0
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0xc0], eax
test eax, eax
je 0x4773e0
mov eax, dword [0x5cb50c]
mov dword [ebp - 0x9c], eax
lea eax, [ebp - 0x9c]
push eax
lea eax, [ebp - 0xc0]
push eax
call fcn.004748b0
add esp, 8
lea ecx, [ebp - 0x204]
mov esi, dword [eax]
call fcn.00415370
push 0
push esi
lea ecx, [ebp - 0x204]
mov byte [ebp - 4], 7
call fcn.00440740
push 0
lea eax, [ebp - 0x24]
mov dword [ebp - 0x24], 0
push eax
push esi
lea ecx, [ebp - 0x204]
call fcn.004200e0
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
push 0
push dword [ebp - 0x24]
lea ecx, [ebp - 0x204]
call fcn.00440740
lea ecx, [ebp - 0x204]
call fcn.004200e0
lea ecx, [ebp - 0x25c]
mov edi, eax
call fcn.004200f0
lea ecx, [ebp - 0x1b4]
mov esi, eax
call fcn.004200f0
push edi
push esi
push dword [ebp - 0xc0]
push eax
lea eax, [ebp - 0x2fc]
push str.unzOpen_failed_for__s._Size:__d__Err:__s__Extra:__S
push eax
call fcn.004b99e0
push eax
lea eax, [ebp - 0x2e4]
mov byte [ebp - 4], 8
push eax
call fcn.004b9890
add esp, 0x20
lea ecx, [ebp - 0x314]
push eax
call fcn.00417170
lea ecx, [ebp - 0x2e4]
call fcn.004166b0
lea ecx, [ebp - 0x2fc]
call fcn.00416700
lea ecx, [ebp - 0x204]
mov byte [ebp - 4], 6
call fcn.004166b0
mov edi, dword [ebp + 8]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x477525
lea ecx, [ebp - 0x25c]
call fcn.004200f0
lea ecx, [ebp - 0x1b4]
mov esi, eax
call fcn.004200f0
push esi
push eax
lea eax, [ebp - 0x2e4]
push str.unzOpen_failed_for__s._Err:__s
push eax
call fcn.004b99e0
push eax
lea eax, [ebp - 0x2fc]
mov byte [ebp - 4], 9
push eax
call fcn.004b9890
add esp, 0x18
lea ecx, [ebp - 0x314]
push eax
call fcn.00417170
lea ecx, [ebp - 0x2fc]
call fcn.004166b0
lea ecx, [ebp - 0x2e4]
mov byte [ebp - 4], 6
call fcn.00416700
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x477525
lea eax, [ebp - 0x9c]
push eax
call fcn.00432ac0
add esp, 4
mov ecx, eax
mov byte [ebp - 4], 0xa
call fcn.00417320
push eax
lea ecx, [ebp - 0x204]
call fcn.00415470
lea eax, [ebp - 0x204]
mov byte [ebp - 4], 0xb
push eax
lea eax, [ebp - 0x294]
push eax
call fcn.004b9890
add esp, 8
mov ecx, eax
mov byte [ebp - 4], 0xc
call fcn.004200e0
lea ecx, [ebp - 0x25c]
mov edi, eax
call fcn.004200f0
lea ecx, [ebp - 0x1b4]
mov esi, eax
call fcn.004200f0
push edi
push esi
push eax
lea eax, [ebp - 0x2e4]
push str.unzOpen_failed_for__s._Err:__s__Extra:__S
push eax
call fcn.004b99e0
push eax
lea eax, [ebp - 0x2fc]
mov byte [ebp - 4], 0xd
push eax
call fcn.004b9890
add esp, 0x1c
lea ecx, [ebp - 0x314]
push eax
call fcn.00417170
lea ecx, [ebp - 0x2fc]
call fcn.004166b0
lea ecx, [ebp - 0x2e4]
call fcn.00416700
lea ecx, [ebp - 0x294]
call fcn.004166b0
lea ecx, [ebp - 0x204]
call fcn.00416700
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 6
call fcn.0042c7c0
lea ecx, [ebp - 0x314]
call fcn.004200e0
push eax
call fcn.004bce00
push eax
push str.Error_calling_unzGoToFirstFile
push str.Failed__s:_UZ_d
call fcn.004bce00
push eax
push str.Error_calling_unzGetGlobalInfo
push str.Failed__s:_UZ_d
call fcn.004bce00
mov ecx, 0x5cc2dc
call fcn.00417310
test al, al
je 0x4775cf
mov dword [ebp + 8], 0xb96c78
lea ecx, [ebp - 0xbc]
mov eax, dword [ebp + 8]
sub eax, 0x635b30
mov dword [ebp + 8], eax
lea eax, [ebp - 0x294]
push eax
call fcn.004224e0
mov ecx, eax
mov byte [ebp - 4], 0x18
call fcn.004200e0
lea ecx, [ebp - 0xbc]
mov edi, eax
call fcn.00417320
lea ecx, [ebp - 0x68]
mov esi, eax
call fcn.004200f0
push edi
push esi
push eax
push dword [ebp + 8]
movzx eax, word [0x5cc2dc]
push eax
call fcn.004bad80
add esp, 0x14
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x294]
call fcn.004166b0
push dword [ebp - 0xb8]
movups xmm0, xmmword [ebp - 0x68]
push dword [ebp - 0xbc]
sub esp, 0x18
mov eax, esp
push str.Failed_to_create_destination_folder:__S__error:__d_
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x58]
movq qword [eax + 0x10], xmm0
call fcn.004bce00
lea ecx, [ebp - 0x100]
call fcn.004200f0
push eax
lea eax, [ebp - 0x294]
push str.Error_calling_WriteFile_for:__s
push eax
call fcn.004b99e0
add esp, 0xc
push eax
mov byte [ebp - 4], 0x1f
call fcn.00437950
call fcn.00525766
push eax
push str.Error_calling_unzCloseCurrentFile
push str.Failed__s:_UZ_d
call fcn.004bce00
lea ecx, [ebp - 0x100]
call fcn.004200f0
push eax
lea eax, [ebp - 0x3dc]
push str.Error_calling_CreateFile_for:__s
push eax
call fcn.004b99e0
add esp, 0xc
push eax
mov byte [ebp - 4], 0x1a
call fcn.00437950
push eax
push str.Error_calling_unzOpenCurrentFile
push str.Failed__s:_UZ_d
call fcn.004bce00
push eax
lea eax, [ebp - 0xa0c]
push eax
push str.Failed_to_create_destination_folder:__S__error:__d_
call fcn.004bce00
lea eax, [ebp - 0x704]
push eax
lea eax, [ebp - 0x294]
push str.Error_calling_WriteFile_for:__s
push eax
call fcn.004b99e0
add esp, 0xc
push eax
mov byte [ebp - 4], 0x2b
call fcn.00437950
lea eax, [ebp - 0x704]
push eax
lea eax, [ebp - 0x3f4]
push str.Error_calling_CreateFile_for:__s
push eax
call fcn.004b99e0
add esp, 0xc
push eax
mov byte [ebp - 4], 0x26
call fcn.00437950
push eax
push str.Error_calling_unzGoToNextFile:__d
call fcn.004bce00
nop
ret