Function at 0x438b80
Capabilities:
Write file on windows

Disassembly:
push ebp
mov eax, sym.___gxx_personality_sj0
mov ebp, esp
push edi
mov edx, 0x5204f6
lea ecx, [ebp - 0x2ac]
push esi
lea edi, [ebp - 0x18]
mov esi, 0x4391b0
push ebx
sub esp, 0x30c
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x294], eax
mov dword [ebp - 0x290], edx
mov dword [ebp - 0x2b8], ebx
mov dword [esp], ecx
mov dword [ebp - 0x28c], edi
mov dword [ebp - 0x288], esi
mov dword [ebp - 0x284], esp
call sym.__Unwind_SjLj_Register
mov ecx, dword [ebp - 0x2b8]
movzx ebx, word [ecx]
cmp bx, 0x4853
sete dl
cmp bx, 0x5a53
sete al
or al, dl
je 0x439180
mov esi, dword [ecx + 0x10c]
test esi, esi
je 0x439180
mov eax, dword [ecx + 0xf8]
xor edx, edx
test eax, eax
jne 0x4391a0
mov dword [ebp - 0x2bc], edx
mov edi, 0xffffffff
shl edx, 4
mov dword [ebp - 0x2c4], edx
xor esi, esi
mov dword [esp], edx
mov dword [ebp - 0x2a8], edi
xor edi, edi
call sym.operator_new___unsigned_int_
mov dword [ebp - 0x2c0], eax
mov ecx, dword [ebp - 0x2c4]
mov ebx, dword [ebp - 0x2c0]
mov dword [esp + 4], esi
mov dword [esp + 8], ecx
mov dword [esp], ebx
lea ebx, [ebp - 0x128]
call sym._memset
mov dword [esp + 8], edi
mov ecx, dword [ebp - 0x2b8]
mov edx, str.emastat.dat
mov dword [esp + 0xc], edx
lea eax, [ebp - 0x118]
mov edi, 1
mov dword [esp + 0x10], eax
movzx esi, word [ecx]
mov dword [esp], 0x5631e0
mov dword [esp + 4], esi
call method.c_HQserver.makeDataFilePath_unsigned_short__char_const__char_const__char_
mov dword [esp], ebx
call fcn.004041c0
mov dword [ebp - 0x2a8], edi
lea eax, [ebp - 0x118]
lea edx, [ebp - 0x128]
mov dword [esp + 4], eax
mov dword [esp], edx
call method.c_Fbuf.copydata_char_const_
mov edx, dword [ebp - 0x128]
test edx, edx
je 0x438db0
mov eax, dword [ebp - 0x124]
test eax, eax
jle 0x438db0
sub eax, 4
xor ebx, ebx
shr eax, 4
mov dword [ebp - 0x2c8], eax
lea eax, [edx + 4]
mov edx, dword [ebp - 0x2c8]
mov dword [ebp - 0x2cc], ebx
cmp dword [ebp - 0x2cc], edx
jge 0x438db0
mov dword [ebp - 0x2f8], eax
mov ecx, dword [ebp - 0x2f8]
mov eax, 1
mov esi, dword [ebp - 0x2b8]
mov dword [ebp - 0x2a8], eax
add ecx, 6
mov dword [esp + 4], ecx
mov dword [esp], esi
call method.c_Market.findDrvIDbyLabel_char_const_
movzx eax, ax
cmp ax, 0xffff
je 0x438d84
mov ecx, dword [ebp - 0x2f8]
mov edx, eax
mov edi, dword [ebp - 0x2c0]
shl edx, 4
mov ebx, dword [ecx]
mov dword [edx + edi], ebx
mov esi, dword [ebp - 0x2f8]
mov ebx, dword [ebp - 0x2c0]
mov eax, dword [esi + 4]
mov dword [edx + ebx + 4], eax
mov ecx, dword [ebp - 0x2f8]
mov esi, dword [ebp - 0x2c0]
mov edi, dword [ecx + 8]
mov dword [edx + esi + 8], edi
mov eax, dword [ebp - 0x2f8]
mov edi, dword [ebp - 0x2c0]
mov ebx, dword [eax + 0xc]
mov dword [edx + edi + 0xc], ebx
inc dword [ebp - 0x2cc]
mov edx, dword [ebp - 0x2c8]
add dword [ebp - 0x2f8], 0x10
cmp dword [ebp - 0x2cc], edx
jl 0x438d06
lea esi, [esi]
lea edi, [edi]
lea edi, [ebp - 0x128]
mov esi, 0xffffffff
mov dword [esp], edi
mov dword [ebp - 0x2a8], esi
call sym.c_Fbuf::c_Fbuf__
xor eax, eax
mov edx, dword [ebp - 0x2bc]
mov dword [ebp - 0x2d4], eax
cmp dword [ebp - 0x2d4], edx
jge 0x4390d4
mov ebx, dword [ebp - 0x2c0]
xor ecx, ecx
mov dword [ebp - 0x2f0], ecx
mov dword [ebp - 0x2f4], ebx
jmp 0x438e66
imul ebx, eax, 0x3b
mov esi, 0x4325c53f
mov eax, ebx
imul esi
mov ecx, edx
mov edx, ebx
lea ebx, [edi + edi]
sar edx, 0x1f
mov eax, ebx
sar ecx, 4
mov edi, ebx
sub ecx, edx
imul esi
mov esi, dword [ebp - 0x2f0]
sar edi, 0x1f
sar edx, 4
sub edx, edi
lea ebx, [ecx + edx]
mov ecx, dword [ebp - 0x2c0]
mov dword [esi + ecx], ebx
nop
lea esi, [esi]
inc dword [ebp - 0x2d4]
mov edi, dword [ebp - 0x2bc]
add dword [ebp - 0x2f4], 0x10
add dword [ebp - 0x2f0], 0x10
cmp dword [ebp - 0x2d4], edi
jge 0x4390d4
movzx esi, word [ebp - 0x2d4]
mov edx, 0xffffffff
mov eax, dword [ebp - 0x2b8]
mov ebx, str._s.dat
lea edi, [ebp - 0x258]
mov dword [esp + 4], esi
movzx ecx, word [eax]
mov dword [ebp - 0x2d8], esi
lea esi, [ebp - 0x228]
mov dword [ebp - 0x2a8], edx
mov dword [esp], ecx
call sym.GetStaticByID_unsigned_short__unsigned_short_
mov dword [esp + 4], ebx
add eax, 2
mov dword [esp], edi
mov dword [esp + 8], eax
call sym._sprintf
mov dword [esp + 0x10], esi
mov edx, dword [ebp - 0x2b8]
mov ecx, str.daystat
mov dword [esp + 8], ecx
lea eax, [ebp - 0x258]
mov dword [esp + 0xc], eax
movzx ebx, word [edx]
mov dword [esp], 0x5631e0
mov dword [esp + 4], ebx
call method.c_HQserver.makeDataFilePath_unsigned_short__char_const__char_const__char_
mov edi, dword [ebp - 0x2b8]
xor ecx, ecx
mov edx, dword [edi + 0xf8]
mov esi, dword [edx + 8]
movsx eax, word [esi + 0xa]
cmp dword [ebp - 0x2d8], eax
jge 0x438f1b
mov ebx, dword [ebp - 0x2d8]
mov ecx, dword [ebp - 0x2d8]
mov edi, dword [edx + 0xc]
shl ebx, 4
add ebx, ecx
lea ecx, [edi + ebx*4]
mov esi, dword [ebp - 0x2f4]
mov edx, 0xffffffff
lea ebx, [ecx + 2]
mov dword [ebp - 0x2a8], edx
mov ecx, 0xa
lea edi, [ebp - 0x278]
mov dword [esp + 8], ecx
add esi, 6
mov dword [esp + 4], ebx
mov dword [esp], esi
lea esi, [ebp - 0x278]
call sym._memmove
cld
xor eax, eax
mov ecx, 7
rep stosd dword es:[edi], eax
movzx ebx, word [ebp - 0x2d4]
mov edi, dword [ebp - 0x2b8]
mov dword [esp + 4], ebx
mov eax, dword [edi + 0x10c]
mov dword [ebp - 0x2dc], ebx
mov dword [esp], eax
call method.c_L2fileManage.ptrStatMin_unsigned_short_
mov dword [esp + 0x10], esi
mov edx, dword [ebp - 0x2f4]
lea ecx, [ebp - 0x228]
mov dword [esp + 8], ecx
mov ebx, dword [ebp - 0x2b8]
mov dword [esp + 0xc], edx
mov edi, dword [ebx + 0x54]
mov dword [esp], eax
mov dword [esp + 4], edi
call method.L2_STAT_MIN_EXP.AppendDayStat_V1_long__char__s_L2EMASTAT_V2__L2_STATDAY_
movzx esi, byte [ebp - 0x274]
movzx eax, byte [ebp - 0x271]
movzx ecx, word [ebp - 0x276]
movzx edx, word [ebp - 0x273]
shl esi, 0x10
shl eax, 0x10
add ecx, esi
add edx, eax
add ecx, edx
je 0x438e40
movzx ebx, word [ebp - 0x26e]
mov dword [ebp - 0x2e0], ecx
mov esi, dword [ebp - 0x2b8]
xor ecx, ecx
movzx edx, word [ebp - 0x268]
neg ebx
sub ebx, edx
add ebx, 0x7d0
push ebx
mov edx, dword [esi + 0xf8]
fild dword [esp]
add esp, 4
mov eax, dword [edx + 8]
fdiv dword [0x533138]
movsx edi, word [eax + 0xa]
cmp dword [ebp - 0x2dc], edi
fstp qword [ebp - 0x2e8]
jge 0x439042
mov eax, dword [ebp - 0x2dc]
mov ecx, dword [ebp - 0x2dc]
mov edi, dword [edx + 0x14]
shl eax, 6
sub eax, ecx
lea ecx, [edi + eax*2]
lea eax, [ecx + 0x16]
mov edi, 0xffffffff
mov dword [esp], eax
mov dword [ebp - 0x2a8], edi
call method.MWORD.GetValue___const
push edx
fnstcw word [ebp - 0x2ae]
mov ebx, dword [ebp - 0x2f0]
mov esi, dword [ebp - 0x2c0]
push eax
fild qword [esp]
add esp, 8
fmul qword [ebp - 0x2e8]
movzx edx, word [ebp - 0x2ae]
or dx, 0xc00
mov word [ebp - 0x2b0], dx
fstp qword [ebp - 0x2e8]
fild dword [ebp - 0x2e0]
fdivr qword [ebp - 0x2e8]
fldcw word [ebp - 0x2b0]
fistp dword [ebp - 0x2b4]
fldcw word [ebp - 0x2ae]
mov eax, dword [ebx + esi]
mov edi, dword [ebp - 0x2b4]
test eax, eax
jne 0x438e00
mov esi, dword [ebp - 0x2f0]
mov ecx, dword [ebp - 0x2c0]
mov dword [esi + ecx], edi
jmp 0x438e40
mov eax, 0x532dd7
lea edx, [ebp - 0x118]
mov ebx, 0xffffffff
mov dword [esp + 4], eax
mov dword [esp], edx
mov dword [ebp - 0x2a8], ebx
call sym._fopen
mov dword [ebp - 0x2ec], eax
test eax, eax
je 0x439160
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2b8]
mov ecx, 4
mov dword [esp + 4], ecx
mov esi, 1
mov edi, 0x10
mov dword [esp + 8], esi
add eax, 0x54
mov dword [esp], eax
call sym._fwrite
mov dword [esp + 4], edi
mov edx, dword [ebp - 0x2ec]
mov ebx, dword [ebp - 0x2bc]
mov esi, dword [ebp - 0x2c0]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ebx
mov dword [esp], esi
call sym._fwrite
mov ecx, dword [ebp - 0x2ec]
mov dword [esp], ecx
call sym._fclose
mov edi, dword [ebp - 0x2c0]
test edi, edi
je 0x439180
mov ebx, dword [ebp - 0x2c0]
mov dword [esp], ebx
call sym.operator_delete___void_
nop
lea esi, [esi]
lea edx, [ebp - 0x2ac]
mov dword [esp], edx
call sym.__Unwind_SjLj_Unregister
add esp, 0x30c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [eax + 8]
movsx edx, word [ecx + 0xa]
jmp 0x438c12