Function at 0x431bf0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x43c
mov eax, dword [0x52382c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
cmp dword [ebx*4 + 0x5e8970], 0xffffffff
push esi
push edi
jne 0x431e70
mov esi, ebx
imul esi, esi, 0x68
lea edx, [esi + 0x5042a0]
mov eax, edx
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x431c27
sub eax, edi
je 0x431e51
push edx
lea eax, [ebp - 0x404]
push str.Char_s.txb
push eax
call fcn.004cce8a
lea ecx, [ebp - 0x404]
push ecx
call fcn.004318d0
push 3
push 0x4e4570
push 0x526a00
call fcn.004ccfca
add esp, 0x1c
test eax, eax
lea eax, [ebp - 0x404]
jne 0x431c8d
lea edx, [ebp - 0x418]
push edx
push eax
call fcn.0047d590
add esp, 8
xor ecx, ecx
cmp byte [ebp - 0x416], 1
jmp 0x431ca6
lea edx, [ebp - 0x438]
push edx
push eax
call fcn.0047e110
add esp, 8
xor ecx, ecx
cmp byte [ebp - 0x430], 1
sete cl
cmp dword [0x64123c], 0
push 2
lea edi, [ecx*4 + 0x15]
push edi
je 0x431cd7
mov edx, dword [0x41ec330]
mov ecx, dword [0x5f483c]
push edx
lea eax, [ebp - 0x404]
push eax
call fcn.004a5380
jmp 0x431cf0
mov ecx, dword [0x41ec330]
push ecx
mov ecx, dword [0x5f483c]
lea edx, [ebp - 0x404]
push edx
call fcn.004a4f60
cmp dword [0x5eaaa0], 0
mov dword [ebx*4 + 0x5e8970], eax
je 0x431d2e
cmp dword [esi + 0x5042e0], 0
je 0x431d2e
cmp edi, 0x19
jne 0x431d16
push 0x31545844
push eax
jmp 0x431d23
mov ecx, dword [ebx*4 + 0x5e8970]
push 0x34545844
push ecx
mov ecx, dword [0x5f483c]
call fcn.004a4b60
mov eax, dword [ebx*4 + 0x5e8970]
mov ecx, dword [0x5f483c]
mov edx, dword [ecx + eax*4 + 0x11414]
fild dword [ecx + eax*4 + 0x11414]
test edx, edx
jns 0x431d53
fadd dword [0x4e4558]
fstp dword [ebx*4 + 0x641480]
mov eax, dword [ecx + eax*4 + 0x11814]
mov dword [ebp - 0x43c], eax
fild dword [ebp - 0x43c]
test eax, eax
jns 0x431d77
fadd dword [0x4e4558]
lea ecx, [esi + str.NAME]
fstp dword [ebx*4 + 0x1a3b548]
push ecx
lea edx, [ebp - 0x404]
push str.Char_s.txb
push edx
call fcn.004cce8a
lea eax, [ebp - 0x404]
push eax
call fcn.004318d0
push 3
push 0x4e4570
push 0x526a00
call fcn.004ccfca
add esp, 0x1c
lea edx, [ebp - 0x404]
test eax, eax
jne 0x431ddb
lea ecx, [ebp - 0x418]
push ecx
push edx
call fcn.0047d590
add esp, 8
xor eax, eax
cmp byte [ebp - 0x416], 1
jmp 0x431df4
lea ecx, [ebp - 0x438]
push ecx
push edx
call fcn.0047e110
add esp, 8
xor eax, eax
cmp byte [ebp - 0x430], 1
sete al
push 2
lea ecx, [ebp - 0x404]
lea edi, [eax*4 + 0x15]
push edi
push ecx
mov ecx, dword [0x5f483c]
call fcn.004a4cf0
cmp dword [esi + 0x5042e0], 0
mov dword [ebx*4 + 0x5f3760], eax
je 0x431e70
cmp dword [0x5eaaa0], 0
je 0x431e70
mov ecx, dword [0x5f483c]
cmp edi, 0x19
jne 0x431e44
push 0x31545844
push eax
call fcn.004a4b60
jmp 0x431e70
push 0x34545844
push eax
call fcn.004a4b60
jmp 0x431e70
fld dword [0x4e54b4]
mov dword [ebx*4 + 0x5e8970], 0xffffffff
fst dword [ebx*4 + 0x641480]
fstp dword [ebx*4 + 0x1a3b548]
mov eax, dword [ebx*4 + 0x568098]
lea edi, [ebx*4 + 0x568098]
test eax, eax
je 0x431ea1
cmp dword [ebx*4 + 0x6a3c98], 0
jne 0x432085
test eax, eax
je 0x431ea1
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov dword [edi], 0
mov eax, dword [ebx*4 + 0x6a3c98]
lea esi, [ebx*4 + 0x6a3c98]
test eax, eax
je 0x431ec0
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov dword [esi], 0
imul ebx, ebx, 0x68
lea edx, [ebx + 0x5042a0]
mov eax, edx
lea ebx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x431ed0
sub eax, ebx
je 0x432085
push edx
push 0x525258
lea edx, [ebp - 0x404]
push str._sData_s.cd9
push edx
call fcn.004cce8a
lea eax, [ebp - 0x404]
push 0x4e4714
push eax
call fcn.004cdd4a
mov ebx, eax
add esp, 0x18
mov dword [ebp - 0x43c], ebx
lea ecx, [ebp - 0x404]
test ebx, ebx
jne 0x431f51
mov eax, dword [0x5ec1bc]
add eax, dword [0x1a3ba10]
push ecx
push eax
push 0x6a3898
call fcn.004cce8a
push 0x6a3898
call fcn.0040b000
add esp, 0x10
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004ccd49
mov esp, ebp
pop ebp
ret
push ebx
push 0x20
push 1
push ecx
call fcn.004cdfab
add esp, 0x10
push 0x14004
push 0
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [edi], eax
test eax, eax
je 0x43207c
push ebx
push 1
push 0x14004
push eax
call fcn.004cdfab
mov edx, dword [edi]
mov ebx, dword [edx]
imul ebx, ebx, 0x8c
add esp, 0x10
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [esi], eax
test eax, eax
je 0x432076
mov ecx, dword [ebp - 0x43c]
push ecx
push 1
push ebx
push eax
call fcn.004cdfab
mov eax, dword [0x41ec330]
add esp, 0x10
cmp eax, 1
jne 0x43201b
mov eax, dword [edi]
xor edx, edx
cmp dword [eax], edx
jle 0x432076
fld qword [0x4e4620]
xor eax, eax
mov ecx, dword [esi]
fld dword [eax + ecx + 0x20]
lea ecx, [eax + ecx + 0x20]
fmul st(1)
inc edx
fstp dword [ecx]
mov ecx, dword [esi]
fld dword [eax + ecx + 0x24]
lea ecx, [eax + ecx + 0x24]
fmul st(1)
fstp dword [ecx]
mov ecx, dword [esi]
fld dword [eax + ecx + 0x28]
lea ecx, [eax + ecx + 0x28]
fmul st(1)
fstp dword [ecx]
mov ecx, dword [esi]
fld dword [eax + ecx + 0x2c]
lea ecx, [eax + ecx + 0x2c]
fmul st(1)
add eax, 0x8c
fstp dword [ecx]
mov ecx, dword [edi]
cmp edx, dword [ecx]
jl 0x431fd5
jmp 0x432074
cmp eax, 2
jne 0x432076
mov eax, dword [edi]
xor edx, edx
cmp dword [eax], edx
jle 0x432076
fld qword [0x4e46c8]
xor eax, eax
mov ecx, dword [esi]
fld dword [eax + ecx + 0x20]
lea ecx, [eax + ecx + 0x20]
fmul st(1)
inc edx
fstp dword [ecx]
mov ecx, dword [esi]
fld dword [eax + ecx + 0x24]
lea ecx, [eax + ecx + 0x24]
fmul st(1)
fstp dword [ecx]
mov ecx, dword [esi]
fld dword [eax + ecx + 0x28]
lea ecx, [eax + ecx + 0x28]
fmul st(1)
fstp dword [ecx]
mov ecx, dword [esi]
fld dword [eax + ecx + 0x2c]
lea ecx, [eax + ecx + 0x2c]
fmul st(1)
add eax, 0x8c
fstp dword [ecx]
mov ecx, dword [edi]
cmp edx, dword [ecx]
jl 0x432030
fstp st(0)
mov ebx, dword [ebp - 0x43c]
push ebx
call fcn.004cda49
add esp, 4
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004ccd49
mov esp, ebp
pop ebp
ret