Function at 0x401810
Capabilities:
Get file size
Inspect load icon resource
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x290
mov eax, dword [0x42d040]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [0x432210], eax
push 0x394
call fcn.0040fb38
add esp, 4
mov dword [0x42f588], eax
push 0x394
push 0
mov ecx, dword [0x42f588]
push ecx
call fcn.0040b740
add esp, 0xc
test eax, eax
jne 0x40185e
xor eax, eax
jmp 0x401ad7
call fcn.00405810
push 0x104
mov edx, dword [0x42f588]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 1
mov eax, dword [0x42f588]
push eax
mov ecx, dword [0x42f588]
add ecx, 0x12c
push ecx
call fcn.00403460
add esp, 0xc
push 0
mov edx, dword [0x42f588]
push edx
mov eax, dword [0x42f588]
add eax, 0x258
push eax
call fcn.004035b0
add esp, 0xc
lea ecx, [ebp - 0x288]
push ecx
push 0x8002
mov edx, dword [0x432210]
push edx
call dword [sym.imp.USER32.dll_GetClassInfoA]
mov eax, dword [0x432210]
mov dword [ebp - 0x278], eax
mov dword [ebp - 0x264], str.EncoderClass
push str.rdpicon
mov ecx, dword [0x432210]
push ecx
call dword [sym.imp.USER32.dll_LoadIconA]
mov dword [ebp - 0x274], eax
lea edx, [ebp - 0x288]
push edx
call dword [sym.imp.USER32.dll_RegisterClassA]
movzx eax, ax
test eax, eax
jne 0x40191e
mov ecx, dword [0x42f588]
push ecx
call fcn.0040fb1d
add esp, 4
jmp 0x401ad5
push 0x4010a0
call fcn.004087b0
add esp, 4
mov edx, dword [0x42f588]
add edx, 0x258
push edx
push str._sRdpZapper__.lic
push 0x12c
lea eax, [ebp - 0x130]
push eax
call fcn.00401060
add esp, 0x10
lea ecx, [ebp - 0x130]
push ecx
call fcn.004011d0
add esp, 4
cmp dword [0x42f58c], 0
je 0x401ad5
mov edx, dword [0x42f58c]
cmp dword [edx + 4], 0
je 0x401ad5
mov eax, dword [0x42f588]
add eax, 0x12c
push eax
mov ecx, dword [0x42f588]
add ecx, 0x258
push ecx
push str._s_s.bin
push 0x12c
lea edx, [ebp - 0x25c]
push edx
call fcn.00401060
add esp, 0x14
push 0
push 0
push 3
push 0
push 3
push 0x80000000
lea eax, [ebp - 0x25c]
push eax
call dword [0x4321f4]
mov dword [ebp - 0x28c], eax
cmp dword [ebp - 0x28c], 0xffffffff
je 0x401ad5
push 0
mov ecx, dword [ebp - 0x28c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [0x42f590], eax
mov edx, dword [0x42f590]
push edx
call fcn.0040fb38
add esp, 4
mov dword [0x42f57c], eax
cmp dword [0x42f57c], 0
je 0x401abe
push 0
lea eax, [ebp - 0x260]
push eax
mov ecx, dword [0x42f590]
push ecx
mov edx, dword [0x42f57c]
push edx
mov eax, dword [ebp - 0x28c]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x401abe
mov ecx, dword [0x42f590]
cmp ecx, dword [ebp - 0x260]
jne 0x401abe
mov edx, dword [ebp - 0x28c]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x28c], 0
mov dword [ebp - 0x290], 0
jmp 0x401a7e
mov eax, dword [ebp - 0x290]
add eax, 1
mov dword [ebp - 0x290], eax
cmp dword [ebp - 0x290], 0x100
jge 0x401aa7
push 0
push 0
mov ecx, dword [ebp - 0x290]
push ecx
push 0x4016b0
push 0
push 0
call dword [0x4321f8]
nop
jmp 0x401a6f
cmp dword [0x42f578], 0x100
jge 0x401abe
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
nop
jmp 0x401aa7
cmp dword [ebp - 0x28c], 0
je 0x401ad5
mov edx, dword [ebp - 0x28c]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
nop
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040a3f8
mov esp, ebp
pop ebp
ret 0x10