Function at 0x4085a0
Capabilities:
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x45a84b
mov eax, dword fs:[0]
push eax
sub esp, 0xfb4
mov eax, dword [0x47613c]
xor eax, esp
mov dword [esp + 0xfb0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x47613c]
xor eax, esp
push eax
lea eax, [esp + 0xfc8]
mov dword fs:[0], eax
mov edi, ecx
push 0x45f8fc
push str.updater.uif
mov dword [esp + 0x24], edi
call fcn.00442660
mov esi, eax
xor ebx, ebx
add esp, 8
cmp esi, ebx
jne 0x408669
push 0x22
push str.Error:_updater.uif_File_Not_Found_
mov ecx, 0x47a6a4
call fcn.00401680
mov eax, dword [0x47a6a4]
mov ecx, 1
sub ecx, dword [eax - 4]
or ecx, dword [eax - 8]
jge 0x40862e
push ebx
mov ecx, 0x47a6a4
call fcn.004013e0
mov eax, dword [0x47a6a4]
push ebx
push ebx
push eax
call fcn.004233c9
mov eax, dword [0x47a6a4]
mov edx, 1
sub edx, dword [eax - 4]
or edx, dword [eax - 8]
jge 0x408658
push ebx
mov ecx, 0x47a6a4
call fcn.004013e0
mov eax, dword [0x47a6a4]
push eax
push edi
call fcn.00403230
add esp, 8
xor eax, eax
jmp 0x408a7b
push 0x80
lea eax, [esp + 0xe44]
push ebx
push eax
call fcn.004415f0
push esi
push 1
lea ecx, [esp + 0xe54]
push 3
push ecx
call fcn.0044257f
push 3
lea edx, [esp + 0xe60]
push 0x45f8c8
push edx
call fcn.0044221f
add esp, 0x28
test eax, eax
jne 0x4086c4
push esi
push 4
push 1
push 0x4775c4
call fcn.0044257f
add esp, 0x10
mov byte [0x477dc8], 1
jmp 0x4086cf
push ebx
push ebx
push esi
call fcn.0044219a
add esp, 0xc
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x130], ebx
mov dword [esp + 0x134], ebx
push esi
push 4
lea eax, [esp + 0x2c]
push 1
push eax
mov dword [esp + 0xfe0], ebx
call fcn.0044257f
mov eax, dword [esp + 0x34]
add esp, 0x10
cmp eax, 4
jle 0x40870d
mov byte [0x477dc9], 1
xor ebp, ebp
cmp eax, ebx
jle 0x408811
or ebx, 0xffffffff
mov eax, dword [esp + 0x12c]
cmp eax, dword [esp + 0x130]
je 0x408731
mov dword [esp + 0x130], eax
push esi
push 1
lea ecx, [esp + 0x30]
push pe_nt_image_headers32
push ecx
call fcn.0044257f
push esi
push 4
lea edx, [esp + 0x30]
push 1
push edx
call fcn.0044257f
xor edi, edi
add esp, 0x20
cmp dword [esp + 0x18], edi
jle 0x4087f5
push esi
push 1
lea eax, [esp + 0x140]
push pe_nt_image_headers32
push eax
call fcn.0044257f
push esi
push 1
lea ecx, [esp + 0x250]
push 0x400
push ecx
call fcn.0044257f
add esp, 0x20
cmp byte [0x477dc8], 0
je 0x4087b1
push esi
push 1
lea edx, [esp + 0x640]
push 0x400
push edx
call fcn.0044257f
add esp, 0x10
jmp 0x4087c8
push 0x400
lea eax, [esp + 0x63c]
push 0
push eax
call fcn.004415f0
add esp, 0xc
lea ecx, [esp + 0x138]
push ecx
lea ecx, [esp + 0x12c]
mov dword [esp + 0xa3c], ebx
mov dword [esp + 0xa40], ebx
call fcn.00407dc0
inc edi
cmp edi, dword [esp + 0x18]
jl 0x408761
lea edx, [esp + 0x28]
push edx
mov ecx, 0x477de8
call fcn.00408510
inc ebp
cmp ebp, dword [esp + 0x24]
jl 0x40871a
xor ebx, ebx
push esi
push 4
lea eax, [esp + 0x28]
push 1
push eax
call fcn.0044257f
add esp, 0x10
cmp dword [esp + 0x20], 0
jle 0x4088c6
mov ebp, dword [esp + 0x14]
push esi
push 1
lea ecx, [esp + 0xa48]
push 0x400
push ecx
call fcn.0044257f
mov edx, dword [0x477dfc]
add esp, 0x10
test edx, edx
jne 0x408858
xor ecx, ecx
jmp 0x408863
mov ecx, dword [0x477e04]
sub ecx, edx
sar ecx, 0xa
mov eax, dword [0x477e00]
mov edi, eax
sub edi, edx
sar edi, 0xa
cmp edi, ecx
jae 0x4088a6
mov byte [esp + 0x14], 0
mov edx, dword [esp + 0x14]
push edx
push ebp
push 0x477df8
lea ecx, [esp + 0xa4c]
push ecx
push 1
push eax
mov edi, eax
call fcn.00404dc0
add esp, 0x18
add edi, 0x400
mov dword [0x477e00], edi
jmp 0x4088bb
lea edx, [esp + 0xa40]
push edx
push 1
push eax
mov ecx, 0x477df8
call fcn.00407510
inc ebx
cmp ebx, dword [esp + 0x20]
jl 0x408832
push esi
call fcn.00442094
mov edi, dword [esp + 0x20]
add esp, 4
push str.PATCH_GROUP
lea eax, [esp + 0xec4]
add edi, 0x10dc
push eax
mov ecx, edi
call fcn.00402410
test eax, eax
jne 0x40892a
lea ecx, [esp + 0xec0]
push ecx
call fcn.00442012
mov ecx, dword [0x477df0]
sub ecx, dword [0x477dec]
mov esi, eax
mov eax, 0x78787879
imul ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
add esp, 4
mov dword [0x4775b4], esi
cmp esi, eax
jb 0x408934
mov dword [0x4775b4], 0
push str.PATCH_SERVER
lea ecx, [esp + 0xec4]
push ecx
mov ecx, edi
call fcn.00402410
test eax, eax
jne 0x40899c
lea edx, [esp + 0xec0]
push edx
call fcn.00442012
mov esi, dword [0x4775b4]
mov edi, dword [0x477dec]
mov ecx, eax
mov eax, esi
imul eax, eax, 0x110
lea eax, [eax + edi + 0x100]
mov dword [0x4775b0], ecx
mov edx, dword [eax + 8]
sub edx, dword [eax + 4]
mov eax, 0x71625345
imul edx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
add esp, 4
cmp ecx, eax
jb 0x4089b0
jmp 0x4089a8
mov edi, dword [0x477dec]
mov esi, dword [0x4775b4]
xor ecx, ecx
mov dword [0x4775b0], ecx
cmp byte [0x477dc9], 0
je 0x4089ec
cmp esi, 3
jl 0x4089ec
mov edx, dword [0x477df0]
sub edx, edi
mov eax, 0x78787879
imul edx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, esi
sub eax, edx
add eax, 3
jns 0x4089e2
xor eax, eax
mov edx, esi
sub edx, eax
mov dword [0x477dcc], edx
xor eax, eax
lea edx, [ecx + 1]
cmp edx, 6
mov dword [0x4775ac], eax
jle 0x408a39
imul esi, esi, 0x110
lea eax, [esi + edi + 0x100]
mov dword [0x4775ac], ecx
mov edx, dword [eax + 8]
sub edx, dword [eax + 4]
mov eax, 0x71625345
imul edx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, ecx
sub eax, edx
add eax, 6
jns 0x408a30
xor eax, eax
sub ecx, eax
mov eax, ecx
mov dword [0x4775ac], eax
mov esi, dword [esp + 0x1c]
mov ecx, esi
mov dword [0x4775a8], eax
call fcn.00405e10
mov ecx, esi
call fcn.00403630
push 0
mov ecx, esi
call fcn.00405ba0
push 0
mov ecx, esi
call fcn.004061d0
mov eax, dword [esp + 0x12c]
test eax, eax
je 0x408a76
push eax
call fcn.00419956
add esp, 4
mov eax, 1
mov ecx, dword [esp + 0xfc8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xfb0]
xor ecx, esp
call fcn.00441051
add esp, 0xfc0
ret