Function at 0x402220
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x25c
mov eax, dword [0x4205cc]
xor eax, esp
mov dword [esp + 0x258], eax
push ebx
push esi
push edi
push dword [0x422c68]
lea eax, [esp + 0x5c]
push str._s_update.manifest
push 0x104
push eax
call fcn.00406dbd
lea eax, [esp + 0x68]
push 0x41deb4
push eax
call fcn.00407ac8
mov esi, eax
xor ebx, ebx
add esp, 0x18
cmp esi, ebx
jne 0x402279
push 6
pop eax
jmp 0x402659
push dword [0x422c88]
mov edi, str.update.manifest
call fcn.00403267
cmp eax, ebx
pop ecx
jne 0x402293
push 6
pop edi
jmp 0x40229d
push esi
mov ecx, eax
call fcn.0040291c
mov edi, eax
push esi
call fcn.004061b1
cmp edi, ebx
pop ecx
jne 0x402657
push ebx
lea eax, [esp + 0x5c]
push 0x8000
push eax
call fcn.00409496
mov esi, eax
add esp, 0xc
cmp esi, ebx
mov dword [esp + 0x10], esi
jge 0x4022d7
cmp esi, 0xffffffff
je 0x402271
push esi
call fcn.0040ba5c
pop ecx
jmp 0x402271
lea eax, [esp + 0x28]
push eax
push esi
call fcn.004070f6
test eax, eax
pop ecx
pop ecx
jne 0x4022c9
mov eax, dword [esp + 0x3c]
inc eax
push eax
call fcn.004074a7
mov esi, eax
cmp esi, ebx
pop ecx
jne 0x402313
cmp dword [esp + 0x10], 0xffffffff
je 0x40230b
push dword [esp + 0x10]
call fcn.0040ba5c
pop ecx
xor eax, eax
inc eax
jmp 0x402659
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x14], esi
jmp 0x402353
mov eax, 0x7fffffff
cmp edi, eax
jae 0x402328
mov eax, edi
push eax
push dword [esp + 0x18]
push dword [esp + 0x18]
call fcn.004120b1
add esp, 0xc
cmp eax, ebx
jl 0x4023e3
add dword [esp + 0x14], eax
sub edi, eax
cmp eax, ebx
jne 0x402353
cmp edi, ebx
jne 0x4023f7
cmp edi, ebx
jne 0x40231d
mov eax, dword [esp + 0x3c]
mov byte [eax + esi], bl
lea eax, [esp + 0x14]
push eax
xor edi, edi
push 0x41dcb0
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x1c], esi
call fcn.00401089
cmp eax, ebx
pop ecx
pop ecx
mov dword [esp + 0x24], eax
je 0x40252a
cmp byte [eax], 0x23
je 0x402503
lea eax, [esp + 0x24]
push eax
push 0x41dcac
call fcn.00401089
mov esi, eax
cmp esi, ebx
pop ecx
pop ecx
je 0x40253d
push str.remove
push esi
call fcn.00406fe0
test eax, eax
pop ecx
pop ecx
jne 0x40240f
push 0x10
call fcn.004068e7
cmp eax, ebx
pop ecx
je 0x4024c7
mov dword [eax], 0x41e150
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
jmp 0x4024c0
cmp dword [esp + 0x10], 0xffffffff
je 0x402271
push dword [esp + 0x10]
jmp 0x4022cf
cmp dword [esp + 0x10], 0xffffffff
je 0x402408
push dword [esp + 0x10]
call fcn.0040ba5c
pop ecx
push 8
jmp 0x402273
push 0x41e11c
push esi
call fcn.00406fe0
test eax, eax
pop ecx
pop ecx
jne 0x40243e
push 0xc
call fcn.004068e7
cmp eax, ebx
pop ecx
je 0x4024c7
mov dword [eax], 0x41e164
mov dword [eax + 8], ebx
jmp 0x4024c0
push str.patch
push esi
call fcn.00406fe0
test eax, eax
pop ecx
pop ecx
jne 0x402463
push 0x3c
call fcn.004068e7
cmp eax, ebx
pop ecx
je 0x4024c7
mov dword [eax], 0x41e178
jmp 0x4024b5
push str.add_if
push esi
call fcn.00406fe0
test eax, eax
pop ecx
pop ecx
jne 0x40248b
push 0x10
call fcn.004068e7
cmp eax, ebx
pop ecx
je 0x4024c7
mov dword [eax], 0x41e18c
jmp 0x4023d8
push str.patch_if
push esi
call fcn.00406fe0
test eax, eax
pop ecx
pop ecx
jne 0x4025a2
push 0x40
call fcn.004068e7
cmp eax, ebx
pop ecx
je 0x4024c7
mov dword [eax], 0x41e1a0
mov dword [eax + 0x3c], ebx
or dword [eax + 0x10], 0xffffffff
mov dword [eax + 0x38], ebx
or dword [eax + 0x34], 0xffffffff
mov dword [eax + 4], ebx
mov esi, eax
jmp 0x4024c9
xor esi, esi
cmp esi, ebx
je 0x40256a
push dword [esp + 0x24]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov edi, eax
cmp edi, ebx
jne 0x402588
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x4024f3
mov dword [eax + 4], esi
jmp 0x4024f7
mov dword [esp + 0x18], esi
inc dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x1c], esi
lea eax, [esp + 0x14]
push eax
push 0x41dcb0
call fcn.00401089
cmp eax, ebx
pop ecx
pop ecx
mov dword [esp + 0x24], eax
jne 0x40238d
cmp dword [esp + 0x20], ebx
jne 0x4025b9
push str.empty_action_list_n
call fcn.0040106d
pop ecx
push 8
pop edi
jmp 0x4025df
cmp edi, ebx
mov esi, edi
je 0x402552
mov ecx, esi
mov eax, dword [ecx]
mov esi, dword [esi + 4]
push 1
call dword [eax]
cmp esi, ebx
jne 0x402543
cmp dword [esp + 0x10], 0xffffffff
je 0x402563
push dword [esp + 0x10]
call fcn.0040ba5c
pop ecx
push 5
jmp 0x402273
cmp edi, ebx
mov esi, edi
je 0x4022fa
mov ecx, esi
mov eax, dword [ecx]
mov esi, dword [esi + 4]
push 1
call dword [eax]
cmp esi, ebx
jne 0x402574
jmp 0x4022fa
mov esi, dword [esp + 0x18]
jmp 0x402599
mov ecx, esi
mov eax, dword [ecx]
mov esi, dword [esi + 4]
push 1
call dword [eax]
cmp esi, ebx
jne 0x40258e
jmp 0x402646
cmp edi, ebx
mov esi, edi
je 0x402552
mov ecx, esi
mov eax, dword [ecx]
mov esi, dword [esi + 4]
push 1
call dword [eax]
cmp esi, ebx
jne 0x4025a8
jmp 0x402552
cmp edi, ebx
mov esi, edi
je 0x4025d1
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 8]
cmp eax, ebx
jne 0x4025e5
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x4025bf
fld1
xor edi, edi
fstp dword [0x422c70]
cmp edi, ebx
je 0x4025fa
mov esi, dword [esp + 0x18]
jmp 0x4025f4
mov edi, eax
jmp 0x4025db
mov ecx, esi
mov eax, dword [ecx]
mov esi, dword [esi + 4]
push 1
call dword [eax]
cmp esi, ebx
jne 0x4025e9
jmp 0x402646
lea eax, [esp + 0x18]
call fcn.004021c7
mov esi, dword [esp + 0x18]
mov edi, eax
jmp 0x402616
mov eax, dword [esi]
push edi
mov ecx, esi
call dword [eax + 0x10]
mov esi, dword [esi + 4]
cmp esi, ebx
jne 0x40260b
cmp edi, ebx
jne 0x402625
mov byte [0x422c74], 1
fld dword [0x41e4e0]
mov esi, dword [esp + 0x18]
fstp dword [0x422c70]
jmp 0x402642
mov ecx, esi
mov eax, dword [ecx]
mov esi, dword [esi + 4]
push 1
call dword [eax]
cmp esi, ebx
jne 0x402637
cmp dword [esp + 0x10], 0xffffffff
je 0x402657
push dword [esp + 0x10]
call fcn.0040ba5c
pop ecx
mov eax, edi
mov ecx, dword [esp + 0x264]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00406041
mov esp, ebp
pop ebp
ret