Function at 0x412ab0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
sub esp, 0x10
add eax, 4
push ebx
cmp dword [eax + 0x14], 8
push esi
push edi
jb 0x412ac7
mov eax, dword [eax]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_BeginUpdateResourceW]
mov ebx, eax
mov dword [ebp + 8], ebx
test ebx, ebx
je 0x412ce8
mov edi, dword [ebp + 0x10]
add edi, 4
cmp dword [edi + 0x14], 8
jb 0x412aed
mov eax, dword [edi]
jmp 0x412aef
mov eax, edi
sub esp, 8
mov esi, esp
mov dword [ebp - 0xc], esi
push eax
lea ecx, [esi + 4]
call fcn.00403110
mov dword [esi], vtable.CPathEx.0
call fcn.00419f20
mov ecx, eax
mov dword [ebp - 8], eax
add esp, 8
or ecx, edx
je 0x412ce8
push eax
call fcn.00634e9c
add esp, 4
mov esi, eax
cmp dword [edi + 0x14], 8
jb 0x412b2e
mov edi, dword [edi]
push 0
push 0x80
push 3
push 0
push 1
push SysReAllocString
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0xc], eax
test eax, eax
je 0x412cdf
push 0
lea ecx, [ebp - 0x10]
push ecx
push dword [ebp - 8]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x412cdf
cmp word [esi], 0
jne 0x412cdf
cmp word [esi + 2], 1
jne 0x412cdf
movzx ecx, word [esi + 4]
dec ecx
lea eax, [ecx*8]
sub eax, ecx
lea eax, [eax*2 + 0x14]
push eax
mov dword [ebp - 4], eax
call fcn.00634e9c
movzx ecx, word [esi + 4]
mov edi, eax
xor eax, eax
mov dword [ebp - 8], edi
add esp, 4
mov word [edi + 4], cx
movzx ecx, word [esi]
mov word [edi], cx
movzx ecx, word [esi + 2]
mov word [edi + 2], cx
cmp ax, word [esi + 4]
jae 0x412c1b
lea ecx, [edi + 7]
xor ebx, ebx
lea edx, [esi + 7]
nop dword [eax]
movzx eax, byte [edx + 1]
lea edx, [edx + 0x10]
mov byte [ecx + 1], al
lea ecx, [ecx + 0xe]
movzx eax, byte [edx - 0x10]
mov byte [ecx - 0xe], al
movzx eax, byte [edx - 0xe]
mov byte [ecx - 0xc], al
movzx eax, byte [edx - 0x11]
mov byte [ecx - 0xf], al
mov eax, dword [edx - 9]
mov dword [ecx - 7], eax
movzx eax, word [edx - 0xb]
mov word [ecx - 9], ax
movzx eax, word [edx - 0xd]
mov word [ecx - 0xb], ax
lea eax, [ebx + 1]
mov word [ecx - 3], ax
inc ebx
movzx eax, word [esi + 4]
cmp ebx, eax
jl 0x412bd0
mov ebx, dword [ebp + 8]
push dword [ebp - 4]
push edi
push 0
push dword [ebp + 0xc]
push 0xe
push ebx
call dword [sym.imp.KERNEL32.dll_UpdateResourceW]
test eax, eax
jne 0x412c49
push esi
call fcn.00633c9f
push edi
call fcn.00633c9f
add esp, 8
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
xor ebx, ebx
cmp ax, word [esi + 4]
jae 0x412c95
lea ecx, [edi + 0x12]
mov dword [ebp - 4], ecx
lea edi, [esi + 0x12]
nop dword [eax]
push dword [edi - 4]
mov eax, dword [edi]
add eax, esi
push eax
movzx eax, word [ecx]
push 0
push eax
push 3
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_UpdateResourceW]
test eax, eax
je 0x412cc5
mov ecx, dword [ebp - 4]
inc ebx
movzx eax, word [esi + 4]
add ecx, 0xe
add edi, 0x10
mov dword [ebp - 4], ecx
cmp ebx, eax
jl 0x412c60
mov edi, dword [ebp - 8]
push 0
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_EndUpdateResourceW]
test eax, eax
je 0x412c31
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
call fcn.00633c9f
push edi
call fcn.00633c9f
add esp, 8
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
call fcn.00633c9f
push dword [ebp - 8]
call fcn.00633c9f
add esp, 8
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
call fcn.00633c9f
add esp, 4
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret