Function at 0x403710
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x80e8
call fcn.00421800
mov eax, dword [0x45f91c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x80c8], ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x80d0], edi
test ebx, ebx
jne 0x403796
sub esp, 0x10
lea eax, [ebp - 0x80cc]
mov dword [ebp - 0x80e0], eax
mov eax, esp
push str.got_NULL_account
push str.pvpgn::d2cs::d2char_convert
push 0x10
xorps xmm0, xmm0
movq qword [ebp - 0x80cc], xmm0
movlpd qword [ebp - 0x80e8], xmm0
movups xmm0, xmmword [ebp - 0x80e8]
movups xmmword [eax], xmm0
call fcn.00415770
add esp, 0x1c
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004217ea
mov esp, ebp
pop ebp
ret
test edi, edi
jne 0x4037b2
sub esp, 0x10
lea eax, [ebp - 0x80cc]
mov dword [ebp - 0x80e0], eax
mov eax, esp
push str.got_NULL_charname
jmp 0x403756
call fcn.0040f790
test eax, eax
jne 0x4037da
sub esp, 0x10
lea eax, [ebp - 0x80cc]
mov dword [ebp - 0x80e0], eax
mov eax, esp
push str.Convert_char_has_been_disabled
push str.pvpgn::d2cs::d2char_convert
push 4
jmp 0x40375d
push edi
call fcn.004036a0
add esp, 4
test eax, eax
jns 0x403816
lea eax, [ebp - 0x80d0]
push eax
push str.got_bad_character_name___
push str.pvpgn::d2cs::d2char_convert
push 0x10
call fcn.00401760
add esp, 0x10
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004217ea
mov esp, ebp
pop ebp
ret
push ebx
call fcn.00403630
add esp, 4
test eax, eax
jns 0x403852
lea eax, [ebp - 0x80c8]
push eax
push str.got_bad_account_name___
push str.pvpgn::d2cs::d2char_convert
push 0x10
call fcn.00401760
add esp, 0x10
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004217ea
mov esp, ebp
pop ebp
ret
call fcn.0040f7e0
mov edx, eax
lea eax, [edx + 1]
nop dword [eax]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x403860
mov ecx, ebx
sub edx, eax
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x403870
sub ecx, esi
mov esi, edi
lea eax, [esi + 1]
mov dword [ebp - 0x80d8], eax
mov al, byte [esi]
inc esi
test al, al
jne 0x403884
sub esi, dword [ebp - 0x80d8]
add edx, 3
push 0x153
push str.C:_builder_source_srcd2csd2charfile.cpp
lea eax, [esi + ecx]
add eax, edx
push eax
call fcn.00418700
push edi
mov esi, eax
push ebx
push esi
mov dword [ebp - 0x80d4], esi
call fcn.004049f0
push 0x4482c4
push esi
call fcn.0042ba70
mov esi, eax
add esp, 0x20
test esi, esi
jne 0x40392a
call fcn.0042b896
push dword [eax]
call fcn.0042ca0c
mov dword [ebp - 0x80c8], eax
lea eax, [ebp - 0x80c8]
push eax
lea eax, [ebp - 0x80d4]
push eax
push str.unable_to_open_charinfo_file____for_reading_and_writing__std::fopen:__
push str.pvpgn::d2cs::d2char_convert
push 0x10
call fcn.004035d0
push 0x157
push str.C:_builder_source_srcd2csd2charfile.cpp
push dword [ebp - 0x80d4]
call fcn.00418690
add esp, 0x24
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004217ea
mov esp, ebp
pop ebp
ret
push 0x15a
push str.C:_builder_source_srcd2csd2charfile.cpp
push dword [ebp - 0x80d4]
call fcn.00418690
push esi
push 0xc0
lea eax, [ebp - 0x80c4]
push 1
push eax
call fcn.0042bc60
add esp, 0x1c
cmp eax, 0xc0
je 0x403999
call fcn.0042b896
push dword [eax]
call fcn.0042ca0c
mov dword [ebp - 0x80c8], eax
lea eax, [ebp - 0x80c8]
push eax
lea eax, [ebp - 0x80d0]
push eax
push str.error_reading_charinfo_file_for_character_____std::fread:__
push str.pvpgn::d2cs::d2char_convert
push 0x10
call fcn.004035d0
push esi
call fcn.0042b91f
jmp 0x40377f
lea eax, [ebp - 0x8010]
push eax
call fcn.0041c690
or eax, 0x20
push eax
lea eax, [ebp - 0x8010]
push eax
call fcn.0041c770
lea eax, [ebp - 0x803a]
push eax
call fcn.0041c5e0
or al, 0x20
mov byte [ebp - 0x80d8], al
lea eax, [ebp - 0x803a]
push dword [ebp - 0x80d8]
push eax
call fcn.0041c630
push 0
push 0
push esi
call fcn.0042bfc4
push esi
push 0xc0
lea eax, [ebp - 0x80c4]
push 1
push eax
call fcn.0042c7f8
add esp, 0x34
cmp eax, 0xc0
je 0x403a2d
call fcn.0042b896
push dword [eax]
call fcn.0042ca0c
mov dword [ebp - 0x80c8], eax
lea eax, [ebp - 0x80c8]
push eax
lea eax, [ebp - 0x80d0]
push eax
push str.error_writing_charinfo_file_for_character_____std::fwrite:__
jmp 0x403982
push esi
call fcn.0042b91f
add esp, 4
test eax, eax
jns 0x403a82
call fcn.0042b896
push dword [eax]
call fcn.0042ca0c
mov dword [ebp - 0x80c8], eax
lea eax, [ebp - 0x80c8]
push eax
lea eax, [ebp - 0x80d0]
push eax
push str.could_not_close_charinfo_file_for_character____after_writing__std::fclose:__
push str.pvpgn::d2cs::d2char_convert
push 0x10
call fcn.004035d0
add esp, 0x18
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004217ea
mov esp, ebp
pop ebp
ret
call fcn.0040f810
mov edx, eax
lea eax, [edx + 1]
nop dword [eax]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x403a90
mov ecx, edi
sub edx, eax
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x403aa0
sub ecx, esi
lea eax, [edx + 2]
push 0x173
add eax, ecx
push str.C:_builder_source_srcd2csd2charfile.cpp
push eax
call fcn.00418700
mov esi, eax
push edi
push esi
mov dword [ebp - 0x80d4], esi
call fcn.00404af0
push 0x4482c4
push esi
call fcn.0042ba70
mov ebx, eax
add esp, 0x1c
test ebx, ebx
jne 0x403b39
call fcn.0042b896
push dword [eax]
call fcn.0042ca0c
mov dword [ebp - 0x80c8], eax
lea eax, [ebp - 0x80c8]
push eax
lea eax, [ebp - 0x80d4]
push eax
push str.could_not_open_charsave_file____for_reading_and_writing__std::fopen:__
push str.pvpgn::d2cs::d2char_convert
push 0x10
call fcn.004035d0
push 0x177
push str.C:_builder_source_srcd2csd2charfile.cpp
push esi
call fcn.00418690
add esp, 0x24
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004217ea
mov esp, ebp
pop ebp
ret
push 0x17a
push str.C:_builder_source_srcd2csd2charfile.cpp
push esi
call fcn.00418690
push ebx
push 0x8000
lea eax, [ebp - 0x8004]
push 1
push eax
call fcn.0042bc60
push ebx
mov dword [ebp - 0x80d4], eax
call fcn.0042b998
add esp, 0x20
test eax, eax
jne 0x403bac
call fcn.0042b896
push dword [eax]
call fcn.0042ca0c
mov dword [ebp - 0x80c8], eax
lea eax, [ebp - 0x80c8]
push eax
lea eax, [ebp - 0x80d0]
push eax
push str.error_reading_charsave_file_for_character_____std::fread:__
push str.pvpgn::d2cs::d2char_convert
push 0x10
call fcn.004035d0
push ebx
call fcn.0042b91f
jmp 0x40377f
lea eax, [ebp - 0x8000]
push eax
call fcn.0041c690
mov edi, eax
lea esi, [ebp - 0x7fe0]
lea eax, [ebp - 0x7fec]
cmp edi, 0x5c
cmovb esi, eax
push esi
call fcn.0041c5e0
or al, 0x20
mov byte [ebp - 0x80d8], al
push dword [ebp - 0x80d8]
push esi
call fcn.0041c630
mov esi, dword [ebp - 0x80d4]
add esp, 0x10
cmp edi, 0x5c
jb 0x403c13
push 0xc
lea eax, [ebp - 0x8004]
push esi
push eax
call fcn.0041c900
push eax
lea eax, [ebp - 0x7ff8]
push eax
call fcn.0041c770
add esp, 0x14
push 0
push 0
push ebx
call fcn.0042bfc4
push ebx
push esi
lea eax, [ebp - 0x8004]
push 1
push eax
call fcn.0042c7f8
add esp, 0x1c
cmp eax, esi
je 0x403c70
call fcn.0042b896
push dword [eax]
call fcn.0042ca0c
mov dword [ebp - 0x80c8], eax
lea eax, [ebp - 0x80c8]
push eax
lea eax, [ebp - 0x80d0]
push eax
push str.error_writing_charsave_file_for_character___std::fwrite:__
push str.pvpgn::d2cs::d2char_convert
push 0x10
call fcn.004035d0
push ebx
call fcn.0042b91f
jmp 0x40377f
push ebx
call fcn.0042b91f
add esp, 4
test eax, eax
jns 0x403cc5
call fcn.0042b896
push dword [eax]
call fcn.0042ca0c
mov dword [ebp - 0x80c8], eax
lea eax, [ebp - 0x80c8]
push eax
lea eax, [ebp - 0x80d0]
push eax
push str.could_not_close_charsave_file_for_character____after_writing__std::fclose:__
push str.pvpgn::d2cs::d2char_convert
push 0x10
call fcn.004035d0
add esp, 0x18
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004217ea
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x80c8]
push eax
lea eax, [ebp - 0x80d0]
push eax
push str.character____converted_to_expansion
push str.pvpgn::d2cs::d2char_convert
push 4
call fcn.004035d0
mov ecx, dword [ebp - 4]
add esp, 0x14
xor ecx, ebp
xor eax, eax
pop edi
pop esi
pop ebx
call fcn.004217ea
mov esp, ebp
pop ebp
ret