Function at 0x407140
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x7c
mov eax, dword [0x45f91c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
call fcn.0040f950
lea edx, [eax + 1]
nop dword [eax + eax]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x407160
sub eax, edx
push 0x46
add eax, 0xd
push str.C:_builder_source_srcd2csd2ladder.cpp
push eax
call fcn.00418700
add esp, 0xc
mov esi, eax
push str.D2DV
push str.ladder
call fcn.0040f950
push eax
push str._s__s._s
push esi
call fcn.00405a60
push 0x4481e0
push esi
call fcn.0042ba70
mov ebx, eax
add esp, 0x1c
mov dword [ebp - 0x1c], ebx
test ebx, ebx
jne 0x40721f
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x4c], eax
call fcn.0042b896
push dword [eax]
call fcn.0042ca0c
mov dword [ebp - 0x48], eax
sub esp, 0xc
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x50]
mov dword [ebp - 0x24], eax
mov eax, esp
push str.error_opening_ladder_file____for_reading__std::fopen:__
mov dword [ebp - 0x2c], 0xaa
mov dword [ebp - 0x28], ebx
movups xmm0, xmmword [ebp - 0x2c]
push str.pvpgn::d2cs::d2ladder_readladder
push 0x10
movups xmmword [eax], xmm0
call fcn.00415770
push 0x4a
push str.C:_builder_source_srcd2csd2ladder.cpp
push esi
call fcn.00418690
add esp, 0x28
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 0x4d
push str.C:_builder_source_srcd2csd2ladder.cpp
push esi
call fcn.00418690
push ebx
push 8
lea eax, [ebp - 0xc]
push 1
push eax
call fcn.0042bc60
add esp, 0x1c
cmp eax, 8
je 0x40728f
sub esp, 0x10
lea eax, [ebp - 0x48]
xorps xmm0, xmm0
mov dword [ebp - 0x38], eax
mov eax, esp
movq qword [ebp - 0x48], xmm0
movlpd qword [ebp - 0x40], xmm0
movups xmm0, xmmword [ebp - 0x40]
push str.error_reading_ladder_file
push str.pvpgn::d2cs::d2ladder_readladder
push 0x10
movups xmmword [eax], xmm0
call fcn.00415770
push ebx
call fcn.0042b91f
add esp, 0x20
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 - 0xc]
push eax
call fcn.0041c690
mov esi, eax
push 0x7e
mov dword [0x460984], esi
shl esi, 4
push str.C:_builder_source_srcd2csd2ladder.cpp
push esi
call fcn.00418700
push esi
push 0
push eax
mov dword [0x460988], eax
call fcn.00422c00
mov eax, dword [0x460984]
push 0x5a
push str.C:_builder_source_srcd2csd2ladder.cpp
lea esi, [eax + eax*2]
shl esi, 2
push esi
call fcn.00418700
push ebx
push esi
mov edi, eax
push 1
push edi
mov dword [ebp - 0x6c], edi
call fcn.0042bc60
add esp, 0x38
cmp eax, esi
je 0x407327
push str.error_read_ladder_file
push str.pvpgn::d2cs::d2ladder_readladder
push 0x10
call fcn.00401070
push 0x5d
push str.C:_builder_source_srcd2csd2ladder.cpp
push edi
call fcn.00418690
push ebx
call fcn.0042b91f
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
xor esi, esi
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x10], esi
cmp dword [0x460984], esi
jbe 0x4074d6
add edi, 4
mov dword [ebp - 0x18], edi
lea eax, [edi - 4]
push eax
call fcn.0041c690
lea ecx, [edi + 4]
mov ebx, eax
push ecx
call fcn.0041c690
mov edi, eax
add esp, 8
mov eax, dword [0x460984]
mov dword [ebp - 0x64], edi
cmp ebx, eax
jbe 0x4073f3
mov ecx, dword [ebp - 0x5c]
sub esp, 0x10
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x74], eax
mov eax, esp
push str.ladder_type__exceed_max_ladder_type_
mov dword [ebp - 0x7c], 0x33
mov dword [ebp - 0x78], 0
movups xmm0, xmmword [ebp - 0x7c]
push str.pvpgn::d2cs::d2ladder_create
push 0x10
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], ecx
movups xmmword [eax], xmm0
call fcn.00415770
mov eax, dword [ebp - 0x5c]
add esp, 0xc
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x48]
mov dword [ebp - 0x38], eax
mov eax, esp
mov dword [ebp - 0x40], 3
push str.error_create_ladder_
mov dword [ebp - 0x3c], 0
movups xmm0, xmmword [ebp - 0x40]
push str.pvpgn::d2cs::d2ladder_readladder
push 0x10
mov dword [ebp - 0x48], ebx
movups xmmword [eax], xmm0
call fcn.00415770
add esp, 0x1c
jmp 0x4074b4
lea eax, [edi*8]
mov esi, ebx
push 0x8f
sub eax, edi
shl esi, 4
add esi, dword [0x460988]
shl eax, 2
push str.C:_builder_source_srcd2csd2ladder.cpp
push eax
call fcn.00418700
add esp, 0xc
mov dword [esi + 0xc], eax
mov dword [esi + 4], edi
mov dword [esi], ebx
mov dword [esi + 8], 0
push 0
push dword [ebp - 0x18]
call fcn.0041c690
add esp, 4
push eax
push dword [ebp - 0x1c]
call fcn.0042bfc4
push 0x6a
lea esi, [edi + edi*2]
shl esi, 3
push str.C:_builder_source_srcd2csd2ladder.cpp
push esi
call fcn.00418700
push dword [ebp - 0x1c]
mov dword [ebp - 0x14], eax
push esi
push 1
push eax
call fcn.0042bc60
add esp, 0x28
cmp eax, esi
je 0x407544
sub esp, 0x10
lea eax, [ebp - 0x68]
xorps xmm0, xmm0
mov dword [ebp - 0x58], eax
mov eax, esp
movq qword [ebp - 0x68], xmm0
movlpd qword [ebp - 0x60], xmm0
movups xmm0, xmmword [ebp - 0x60]
push str.error_read_ladder_file
push str.pvpgn::d2cs::d2ladder_readladder
push 0x10
movups xmmword [eax], xmm0
call fcn.00415770
push 0x6d
push str.C:_builder_source_srcd2csd2ladder.cpp
push dword [ebp - 0x14]
call fcn.00418690
add esp, 0x28
mov esi, dword [ebp - 0x10]
mov eax, dword [ebp - 0x30]
mov edi, dword [ebp - 0x18]
inc eax
add edi, 0xc
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x18], edi
cmp eax, dword [0x460984]
jb 0x407345
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x6c]
push 0x76
push str.C:_builder_source_srcd2csd2ladder.cpp
push edi
call fcn.00418690
push ebx
call fcn.0042b91f
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x28], eax
mov eax, dword [0x460984]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x38], eax
mov eax, esp
push str.ladder_file_loaded_successfully___types__maxtype_
mov dword [ebp - 0x40], 0x33
mov dword [ebp - 0x3c], 0
movups xmm0, xmmword [ebp - 0x40]
push str.pvpgn::d2cs::d2ladder_readladder
push 4
mov dword [ebp - 0x2c], esi
movups xmmword [eax], xmm0
call fcn.00415770
mov ecx, dword [ebp - 4]
add esp, 0x1c
xor ecx, ebp
xor eax, eax
pop edi
pop esi
pop ebx
call fcn.004217ea
mov esp, ebp
pop ebp
ret
test edi, edi
je 0x407565
mov esi, dword [ebp - 0x14]
nop dword [eax + eax]
push esi
push ebx
call fcn.00406cc0
add esp, 8
add esi, 0x18
sub edi, 1
jne 0x407550
mov edi, dword [ebp - 0x64]
push 0x73
push str.C:_builder_source_srcd2csd2ladder.cpp
push dword [ebp - 0x14]
call fcn.00418690
add esp, 0xc
test edi, edi
je 0x4074b1
mov esi, dword [ebp - 0x10]
inc esi
mov dword [ebp - 0x10], esi
jmp 0x4074b4