Function at 0x403a60
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
mov eax, dword [0x52de04]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0x14]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 0x10]
push edi
mov edi, dword [0x668604]
imul ecx, edi, 0x4e0
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x48], eax
cmp dword [ecx + 0x530118], 0
je 0x403c9a
cmp edx, dword [ecx + 0x530120]
jge 0x403c9a
test eax, eax
js 0x403ab7
add esi, eax
xor eax, eax
mov dword [ebp - 0x48], eax
jmp 0x403ada
cmp byte [0x668648], 0
jne 0x403ada
push eax
push str.Negative_Left_Offset_when_not_Shape_Nesting_n_nleftOffset___d_n_nThis_should_never_happen.
call fcn.004153c0
mov edi, dword [0x668604]
add esp, 8
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x4c]
imul ecx, edi, 0x4e0
cmp dword [ecx + 0x5305f4], 0
je 0x403b52
test edx, edx
jle 0x403b14
test ebx, ebx
jne 0x403b14
mov eax, edx
cdq
idiv dword [ecx + 0x5305f0]
test edx, edx
jne 0x403b14
push edx
push edx
push dword [ecx + 0x5305f4]
call fcn.004c3c02
mov edi, dword [0x668604]
add esp, 0xc
imul eax, edi, 0x4e0
push dword [eax + 0x5305f4]
push dword [eax + 0x53011c]
push 1
push esi
call fcn.004c37de
add esp, 0x10
imul eax, dword [0x668604], 0x4e0
pop edi
pop esi
pop ebx
mov eax, dword [eax + 0x53011c]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004b3f28
mov esp, ebp
pop ebp
ret
cmp dword [ecx + 0x5305d0], 0
je 0x403ce8
mov eax, dword [0x668600]
cmp ebx, dword [eax + 0x15c]
jge 0x403cad
lea eax, [ecx + 0x53013c]
push eax
push ebx
push edx
call fcn.00403f50
mov ecx, dword [0x668600]
add esp, 0xc
mov edi, dword [0x668604]
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x40], 0
mov edx, dword [ecx + ebx*4 + 0x8c]
mov dword [ebp - 0x48], eax
test edx, edx
jle 0x403bbe
imul eax, edi, 0x138
mov dword [ebp - 0x3c], 0
add eax, edx
mov eax, dword [eax*4 + 0x53023c]
mov dword [ebp - 0x40], eax
mov edx, dword [ecx + ebx*4 + 0xcc]
test edx, edx
jle 0x403be2
imul eax, edi, 0x138
mov dword [ebp - 0x38], 0
add eax, edx
mov eax, dword [eax*4 + 0x53023c]
mov dword [ebp - 0x3c], eax
mov edx, dword [ecx + ebx*4 + 0x10c]
test edx, edx
jle 0x403c06
imul eax, edi, 0x138
mov dword [ebp - 0x34], 0
add eax, edx
mov eax, dword [eax*4 + 0x53023c]
mov dword [ebp - 0x38], eax
push dword [ecx + 0x15c]
imul esi, edi, 0x4e0
xor eax, eax
cmp dword [esi + 0x5305d4], eax
mov edx, dword [esi + 0x530340]
setne al
xor ecx, ecx
push eax
test edx, edx
lea eax, [esi + 0x53013c]
cmovne eax, ecx
test edx, edx
push eax
push ecx
push dword [esi + 0x53033c]
lea eax, [ebp - 0x44]
cmove ecx, ebx
push eax
imul eax, edi, 0x138
add ecx, eax
mov eax, dword [esi + 0x53011c]
shl eax, 3
push dword [ecx*4 + 0x53013c]
push 0
push ebx
push eax
push dword [ebp - 0x4c]
lea eax, [esi + 0x5303c8]
push dword [esi + 0x530350]
push dword [esi + 0x53034c]
push eax
push dword [esi + 0x530348]
call fcn.0041eb00
mov edi, dword [0x668604]
add esp, 0x3c
imul ecx, edi, 0x4e0
cmp dword [ebp - 0x48], 0
mov dword [ecx + 0x530348], eax
jne 0x403ccb
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004b3f28
mov esp, ebp
pop ebp
ret
push dword [ecx + 0x53011c]
imul eax, edi, 0x138
add eax, ebx
push dword [eax*4 + 0x53023c]
push esi
call fcn.004b8680
add esp, 0xc
imul eax, edi, 0x4e0
pop edi
pop esi
pop ebx
mov eax, dword [eax + 0x53011c]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004b3f28
mov esp, ebp
pop ebp
ret
cmp byte [ecx + 0x530128], 0
je 0x403dbd
cmp dword [ecx + 0x530124], 8
jne 0x403dbd
mov eax, dword [0x668618]
cmp eax, dword [ecx + 0x53011c]
jge 0x403d65
mov eax, dword [0x66861c]
test eax, eax
je 0x403d27
push eax
call fcn.004c98b4
mov edi, dword [0x668604]
add esp, 4
imul eax, edi, 0x4e0
mov eax, dword [eax + 0x53011c]
lea eax, [eax*2 + 0x40]
push eax
call fcn.004c98cf
mov edi, dword [0x668604]
add esp, 4
imul ecx, edi, 0x4e0
mov edx, eax
mov dword [0x66861c], edx
mov ecx, dword [ecx + 0x53011c]
mov dword [0x668618], ecx
jmp 0x403d6b
mov edx, dword [0x66861c]
push dword [ebp - 0x48]
imul eax, edi, 0x4e0
push edx
push ebx
push dword [ebp - 0x4c]
mov eax, dword [eax + 0x530358]
call eax
mov ebx, dword [0x668604]
xor edx, edx
mov ecx, dword [0x66861c]
add esp, 0x10
imul edi, ebx, 0x4e0
mov dword [ebp - 0x4c], eax
cmp dword [edi + 0x53011c], edx
jle 0x403dd2
mov al, byte [ecx + 1]
lea esi, [esi + 1]
mov byte [esi - 1], al
lea ecx, [ecx + 2]
inc edx
cmp edx, dword [edi + 0x53011c]
jl 0x403da3
mov eax, dword [ebp - 0x4c]
jmp 0x403dd2
push eax
mov eax, dword [ecx + 0x530358]
push esi
push ebx
push edx
call eax
mov ebx, dword [0x668604]
add esp, 0x10
test eax, eax
je 0x403c9a
mov ecx, dword [ebp - 4]
imul eax, ebx, 0x4e0
xor ecx, ebp
pop edi
pop esi
pop ebx
mov eax, dword [eax + 0x53011c]
call fcn.004b3f28
mov esp, ebp
pop ebp
ret