Function at 0x4379d0
Capabilities:
Create thread
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x70
mov eax, dword [0x471840]
xor eax, ebp
mov dword [ebp - 0x1c], eax
mov byte [ebp - 9], 1
push 0x180
call sub.hge.dll_hgeCreate
mov dword [0x472c10], eax
push 0x437420
push 8
mov ecx, dword [0x472c10]
call fcn.00438150
push 0x438070
push 9
mov ecx, dword [0x472c10]
call fcn.00438150
push 0x462b00
push 0x1b
mov ecx, dword [0x472c10]
call fcn.004381b0
push 0
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 4], eax
push 0x462b0c
push 0
push 0x462b1c
push 0x462b24
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 8], eax
push str.E:gsystem.ini
push 0
push 0x462b3c
push 0x462b44
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 8], 0
jne 0x437aa8
cmp dword [ebp - 0x18], 0
jne 0x437aa8
push 0x462b4c
push 0
push 0x462b64
push 0x462b6c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 8], eax
push 0x462b74
push 0
push 0x462b8c
push 0x462b94
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 8], 0
jne 0x437ae8
cmp dword [ebp - 0x18], 0
jne 0x437ae8
push 0x462b9c
push 0
push 0x462bac
push 0x462bb4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 8], eax
push str.C:gsystem.ini
push 0
push 0x462bcc
push 0x462bd4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 8], 0
jne 0x437b28
cmp dword [ebp - 0x18], 0
jne 0x437b28
push 0x462bdc
push 0
push 0x462bec
push 0x462bf4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 8], eax
push str.D:gsystem.ini
push 0
push 0x462c0c
push 0x462c14
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 8], 0
jne 0x437b68
cmp dword [ebp - 0x18], 0
jne 0x437b68
push 0x462c1c
push 0
push 0x462c34
push 0x462c3c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 8], eax
push str.D:_sailGamegsystem.ini
push 0
push 0x462c5c
push 0x462c64
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 8], 0
je 0x437b78
cmp dword [ebp - 0x18], 0
jne 0x437c27
mov al, byte [0x462b09]
mov byte [ebp - 0x44], al
xor ecx, ecx
mov dword [ebp - 0x43], ecx
mov dword [ebp - 0x3f], ecx
mov dword [ebp - 0x3b], ecx
mov dword [ebp - 0x37], ecx
mov word [ebp - 0x33], cx
mov byte [ebp - 0x31], cl
mov dl, byte [0x462b0a]
mov byte [ebp - 0x58], dl
xor eax, eax
mov dword [ebp - 0x57], eax
mov dword [ebp - 0x53], eax
mov dword [ebp - 0x4f], eax
mov dword [ebp - 0x4b], eax
mov word [ebp - 0x47], ax
mov byte [ebp - 0x45], al
push 8
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov dword [ebp - 8], eax
push 0xa
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov dword [ebp - 0x18], eax
push 0xa
lea eax, [ebp - 0x44]
push eax
mov ecx, dword [ebp - 8]
push ecx
call fcn.0045eedb
add esp, 0xc
push 0xa
lea edx, [ebp - 0x58]
push edx
mov eax, dword [ebp - 0x18]
push eax
call fcn.0045eedb
add esp, 0xc
push 0x462c6c
lea ecx, [ebp - 0x44]
push ecx
push 0x462c84
push 0x462c8c
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push 0x462c94
lea edx, [ebp - 0x58]
push edx
push 0x462cac
push 0x462cb4
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
cmp dword [ebp - 8], 0x780
jne 0x437c4a
cmp dword [ebp - 0x18], 0x438
jne 0x437c4a
push 0x20
push 0x18
mov ecx, dword [0x472c10]
call fcn.00438180
jmp 0x437c59
push 0x1d
push 0x18
mov ecx, dword [0x472c10]
call fcn.00438180
push 0x462cbc
push 0x5a0
push str.width
push 0x462cdc
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x14], eax
push str.E:_sailGamegsystem.ini
push 0x384
push str.height
push str.SCREEN
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [ebp - 8]
imul ecx, dword [ebp - 0x18]
mov dword [ebp - 0x6c], ecx
fild dword [ebp - 0x6c]
fdiv qword [0x462d10]
fstp dword [0x472c34]
movzx edx, byte [ebp - 9]
test edx, edx
je 0x437ce0
mov byte [ebp - 0x30], 0
fld dword [0x4615bc]
fstp dword [ebp - 0x20]
fld dword [0x4615c0]
fstp dword [ebp - 0x24]
fld1
fstp dword [ebp - 0x2c]
fld1
fstp dword [ebp - 0x28]
jmp 0x437d08
mov byte [ebp - 0x30], 0
fild dword [ebp - 8]
fstp dword [ebp - 0x20]
fild dword [ebp - 0x18]
fstp dword [ebp - 0x24]
fild dword [ebp - 8]
fdiv qword [0x4611c8]
fstp dword [ebp - 0x2c]
fild dword [ebp - 0x18]
fdiv qword [0x4611c0]
fstp dword [ebp - 0x28]
movzx eax, byte [ebp - 9]
push eax
push 1
mov ecx, dword [0x472c10]
call fcn.00438120
push 1
push 4
mov ecx, dword [0x472c10]
call fcn.00438120
push 0
push 7
mov ecx, dword [0x472c10]
call fcn.00438120
fld dword [ebp - 0x2c]
fstp dword [0x472c2c]
fld dword [ebp - 0x28]
fstp dword [0x472c30]
mov ecx, dword [ebp - 8]
mov dword [0x472c08], ecx
mov edx, dword [ebp - 0x18]
mov dword [0x472c04], edx
fld dword [ebp - 0x20]
call fcn.0044e7e0
push eax
push 0x11
mov ecx, dword [0x472c10]
call fcn.00438180
fld dword [ebp - 0x24]
call fcn.0044e7e0
push eax
push 0x12
mov ecx, dword [0x472c10]
call fcn.00438180
movzx eax, byte [ebp - 9]
test eax, eax
sete cl
movzx edx, cl
push edx
push 6
mov ecx, dword [0x472c10]
call fcn.00438120
mov eax, dword [0x472c10]
mov ecx, dword [eax]
mov edx, dword [0x472c10]
push edx
mov eax, dword [ecx + 4]
call eax
movzx ecx, al
test ecx, ecx
je 0x438034
push 0xaf8
call fcn.0044f46a
add esp, 4
mov dword [ebp - 0x68], eax
cmp dword [ebp - 0x68], 0
je 0x437dea
mov edx, dword [0x472c10]
push edx
mov ecx, dword [ebp - 0x68]
call fcn.00404f10
mov dword [ebp - 0x70], eax
jmp 0x437df1
mov dword [ebp - 0x70], 0
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp - 0x64]
mov dword [0x472c14], ecx
mov edx, dword [0x472c14]
mov al, byte [ebp - 9]
mov byte [edx + 0xf1], al
cmp dword [ebp - 0x14], 0x500
jne 0x437e36
cmp dword [ebp - 0x10], 0x300
jne 0x437e36
mov ecx, dword [0x472c14]
mov dword [ecx + 0x154], 0
jmp 0x437fab
cmp dword [ebp - 0x14], 0x500
jne 0x437e5d
cmp dword [ebp - 0x10], 0x320
jne 0x437e5d
mov edx, dword [0x472c14]
mov dword [edx + 0x154], 1
jmp 0x437fab
cmp dword [ebp - 0x14], 0x500
jne 0x437e83
cmp dword [ebp - 0x10], 0x3c0
jne 0x437e83
mov eax, dword [0x472c14]
mov dword [eax + 0x154], 2
jmp 0x437fab
cmp dword [ebp - 0x14], 0x500
jne 0x437eaa
cmp dword [ebp - 0x10], 0x400
jne 0x437eaa
mov ecx, dword [0x472c14]
mov dword [ecx + 0x154], 3
jmp 0x437fab
cmp dword [ebp - 0x14], 0x550
jne 0x437ed1
cmp dword [ebp - 0x10], 0x300
jne 0x437ed1
mov edx, dword [0x472c14]
mov dword [edx + 0x154], 4
jmp 0x437fab
cmp dword [ebp - 0x14], 0x556
jne 0x437ef7
cmp dword [ebp - 0x10], 0x300
jne 0x437ef7
mov eax, dword [0x472c14]
mov dword [eax + 0x154], 5
jmp 0x437fab
cmp dword [ebp - 0x14], 0x578
jne 0x437f1e
cmp dword [ebp - 0x10], 0x41a
jne 0x437f1e
mov ecx, dword [0x472c14]
mov dword [ecx + 0x154], 6
jmp 0x437fab
cmp dword [ebp - 0x14], 0x5a0
jne 0x437f42
cmp dword [ebp - 0x10], 0x384
jne 0x437f42
mov edx, dword [0x472c14]
mov dword [edx + 0x154], 7
jmp 0x437fab
cmp dword [ebp - 0x14], 0x640
jne 0x437f65
cmp dword [ebp - 0x10], 0x384
jne 0x437f65
mov eax, dword [0x472c14]
mov dword [eax + 0x154], 8
jmp 0x437fab
cmp dword [ebp - 0x14], 0x690
jne 0x437f89
cmp dword [ebp - 0x10], 0x41a
jne 0x437f89
mov ecx, dword [0x472c14]
mov dword [ecx + 0x154], 9
jmp 0x437fab
cmp dword [ebp - 0x14], 0x780
jne 0x437fab
cmp dword [ebp - 0x10], 0x438
jne 0x437fab
mov edx, dword [0x472c14]
mov dword [edx + 0x154], 0xa
mov eax, dword [0x472c14]
mov ecx, dword [eax + 8]
call fcn.00425540
mov ecx, dword [0x472c14]
call fcn.00407770
mov ecx, dword [0x472c14]
mov byte [ecx + 0x9d0], 0
push 0
push 0
push 0
push 0x4374f0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebp - 0x60], eax
mov edx, dword [ebp - 0x60]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0
push 0
push 0
push 0x437730
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [0x472c10]
mov edx, dword [ecx]
mov eax, dword [0x472c10]
push eax
mov ecx, dword [edx + 0xc]
call ecx
mov edx, dword [0x472c14]
mov byte [edx + 0xf0], 1
mov eax, dword [0x472c10]
mov ecx, dword [eax]
mov edx, dword [0x472c10]
push edx
mov eax, dword [ecx + 8]
call eax
mov ecx, dword [0x472c10]
mov edx, dword [ecx]
mov eax, dword [0x472c10]
push eax
mov ecx, dword [edx]
call ecx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.0044f061
mov esp, ebp
pop ebp
ret 0x10