Function at 0x41d5b0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x35c
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov byte [esp + 0x50], 0
xor eax, eax
mov ecx, 0x40
lea edi, [esp + 0x51]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push str.Module_Information_:__r_n
xor edi, edi
push esi
mov dword [esp + 0x30], edi
call fcn.0041ae20
push str.PathName
push 0x43e5b8
push str.ImageBase
push str.ModName
push str.__12s___10s___13s__s_r_n
push esi
call fcn.0041ae20
add esp, 0x20
push str.Version.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
cmp esi, edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], edi
je 0x41d651
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.GetFileVersionInfoA
push esi
call edi
push str.GetFileVersionInfoSizeA
push esi
mov dword [esp + 0x28], eax
call edi
push str.VerQueryValueA
push esi
mov dword [esp + 0x1c], eax
call edi
mov dword [esp + 0x10], eax
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
xor eax, eax
mov byte [esp + 0x158], 0
mov ecx, 0x40
lea edi, [esp + 0x159]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov byte [esp + 0x260], 0
xor eax, eax
mov ecx, 0x40
lea edi, [esp + 0x261]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov esi, 0x61a80
push 0x1c
lea eax, [esp + 0x38]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
mov edx, dword [esp + 0x34]
push 0x104
lea ecx, [esp + 0x15c]
push ecx
push edx
mov byte [esp + 0x164], 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x4c]
add esi, edx
cmp eax, 0x1000000
mov dword [esp + 0x30], esi
je 0x41d6e0
cmp eax, 0x40000
jne 0x41d8ca
lea eax, [esp + 0x158]
push eax
call ebx
test eax, eax
je 0x41d8ca
lea ecx, [esp + 0x158]
push ecx
lea edx, [esp + 0x264]
push edx
call fcn.0042ae50
add esp, 8
test eax, eax
je 0x41d8ca
lea eax, [esp + 0x158]
push eax
push 0x104
lea ecx, [esp + 0x268]
push ecx
call fcn.00401710
lea edx, [esp + 0x158]
push 0x5c
push edx
call fcn.0042b250
xor esi, esi
add esp, 8
cmp eax, esi
je 0x41d747
inc eax
jmp 0x41d74e
lea eax, [esp + 0x158]
mov ecx, dword [esp + 0x34]
push ecx
push eax
lea edx, [esp + 0x58]
push str.__12s_0x_08x
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push esi
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x58]
push ecx
call ebx
push eax
mov eax, dword [ebp + 8]
lea edx, [esp + 0x5c]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov edi, dword [esp + 0x20]
cmp edi, esi
je 0x41d8ad
mov eax, dword [esp + 0x14]
cmp eax, esi
je 0x41d8ad
cmp dword [esp + 0x10], esi
je 0x41d8ad
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x15c]
push edx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x20], esi
call eax
test eax, eax
mov dword [esp + 0x1c], eax
je 0x41d7fd
push eax
call fcn.00429bd8
mov esi, eax
add esp, 4
test esi, esi
je 0x41d7fd
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push esi
push eax
push ecx
lea edx, [esp + 0x164]
push edx
call edi
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x28]
push ecx
push 0x43d854
push esi
call dword [esp + 0x20]
mov eax, dword [esp + 0x24]
test eax, eax
je 0x41d870
movzx edx, word [eax + 0xc]
movzx ecx, word [eax + 0xe]
push edx
movzx edx, word [eax + 8]
movzx eax, word [eax + 0xa]
push ecx
push edx
push eax
lea ecx, [esp + 0x60]
push str._d._d._d._d
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x18
lea edx, [esp + 0x50]
push edx
call ebx
cmp eax, 0xe
jge 0x41d88f
lea eax, [esp + 0x50]
push eax
call ebx
mov ecx, 0xe
lea edx, [esp + 0x50]
sub ecx, eax
push edx
mov dword [esp + 0x30], ecx
call ebx
lea edi, [esp + eax + 0x50]
mov eax, dword [esp + 0x2c]
mov ecx, eax
mov edx, ecx
shr ecx, 2
mov eax, 0x20202020
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
jmp 0x41d88a
mov eax, 0x20202020
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov byte [esp + 0x5c], al
mov byte [esp + 0x5d], 0x20
mov byte [esp + 0x5e], 0
mov edx, dword [ebp + 8]
lea ecx, [esp + 0x50]
push ecx
push edx
call fcn.0041ae20
add esp, 8
test esi, esi
je 0x41d8ad
push esi
call fcn.00429695
add esp, 4
mov ecx, dword [ebp + 8]
lea eax, [esp + 0x158]
push eax
push str._s__r_n
push ecx
call fcn.0041ae20
mov esi, dword [esp + 0x3c]
add esp, 0xc
cmp esi, 0x80000000
jb 0x41d692
mov edx, dword [ebp + 8]
push 0x43f144
push edx
call fcn.0041ae20
add esp, 8
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret