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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb60
mov eax, dword [0x57c870]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x330], 0
mov dword [ebp - 0x11c], 0xffffffff
mov dword [ebp - 0x338], 0
mov dword [ebp - 0x350], 0
mov dword [ebp - 0x224], 0
mov eax, dword [ebp + 8]
add eax, 0x52
push eax
call fcn.00532e80
add esp, 4
cmp eax, 8
je 0x418aad
push 0x5c4c7f
push 0x5c4c88
push 0x5569f4
push str.Invalid_Class_Path_ID__1_
call fcn.00422b80
add esp, 0x10
or eax, 0xffffffff
jmp 0x419137
mov ecx, dword [ebp + 8]
movsx edx, word [ecx + 0x2be]
test edx, edx
je 0x418ad0
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00419560
add esp, 8
jmp 0x419137
cmp dword [0x5f6630], 0
jne 0x418aee
push 1
push 0x5c44f8
call fcn.00427d90
add esp, 8
mov dword [ebp - 0x338], eax
cmp dword [ebp - 0x338], 0xffffffff
jne 0x418b16
push 0x5c4c89
push 0x8f7
push str.Save_classes
call fcn.00431ee0
add esp, 0xc
or eax, 0xffffffff
jmp 0x419137
push 0x556a30
push 0x5c
push 0x5c44f8
push 0x556a3c
lea edx, [ebp - 0x328]
push edx
call fcn.00532706
add esp, 0x14
push 1
lea eax, [ebp - 0x328]
push eax
call fcn.004869a0
add esp, 8
push eax
lea ecx, [ebp - 0x328]
push ecx
call fcn.00532580
add esp, 8
push 1
push 0x556a44
lea edx, [ebp - 0x328]
push edx
call fcn.00459360
add esp, 0xc
mov dword [ebp - 0x114], eax
cmp dword [0x5fdb24], 1
jne 0x418b84
or eax, 0xffffffff
jmp 0x419137
cmp dword [ebp - 0x114], 0
jne 0x418c38
lea eax, [ebp - 0x110]
push eax
push 0
push 2
lea ecx, [ebp - 0x224]
push ecx
lea edx, [ebp - 0x220]
push edx
push 0x5c4c8a
lea eax, [ebp - 0x328]
push eax
push 1
call fcn.00491e40
add esp, 0x20
mov dword [ebp - 0x338], eax
cmp dword [ebp - 0x338], 0
jne 0x418c12
lea ecx, [ebp - 0x328]
push ecx
lea edx, [ebp - 0x108]
push edx
push 0x556a48
push 0
call fcn.0046ce90
add esp, 0x10
push 0x556a6c
push 0x5c4c8b
push 0x556a90
lea eax, [ebp - 0x108]
push eax
call fcn.00422b80
add esp, 0x10
or eax, 0xffffffff
jmp 0x419137
push 0
push 0x556aa4
lea ecx, [ebp - 0x328]
push ecx
call fcn.00459360
add esp, 0xc
mov dword [ebp - 0x114], eax
mov dword [0x5c44f0], 0
cmp dword [0x5fdb24], 1
je 0x418c4a
cmp dword [ebp - 0x114], 0
jne 0x418c52
or eax, 0xffffffff
jmp 0x419137
cmp dword [ebp - 0x114], 0
je 0x419126
mov edx, dword [ebp - 0x114]
push edx
call fcn.00455900
add esp, 4
mov dword [ebp - 0x350], eax
cmp dword [ebp - 0x350], 0x31f
jl 0x418ca6
push str.ERROR:_No_new_classes_can_be_created
push 1
call fcn.00436500
add esp, 8
mov eax, dword [ebp - 0x114]
push eax
call fcn.00431d50
add esp, 4
or eax, 0xffffffff
jmp 0x419137
mov ecx, dword [ebp + 8]
movsx edx, word [ecx + 0x5e]
cmp edx, 0xfffffc1a
jne 0x418dd9
mov eax, dword [ebp + 8]
movsx ecx, word [eax + 0xfc]
cmp ecx, 0xffffffff
jne 0x418dd9
push 0x802
push 0
lea edx, [ebp - 0xb60]
push edx
call fcn.005323e0
add esp, 0xc
mov dword [ebp - 0x11c], 0
jmp 0x418cfd
mov eax, dword [ebp - 0x11c]
add eax, 1
mov dword [ebp - 0x11c], eax
mov ecx, dword [ebp - 0x11c]
cmp ecx, dword [ebp - 0x350]
jge 0x418d49
mov edx, dword [ebp - 0x11c]
imul edx, edx, 0x127c
movsx eax, word [edx + 0x11a6fbc]
mov dword [ebp - 0x354], eax
cmp dword [ebp - 0x354], 0
jle 0x418d47
cmp dword [ebp - 0x354], 0x802
jge 0x418d47
mov ecx, dword [ebp - 0x354]
mov byte [ebp + ecx - 0xb60], 1
jmp 0x418cee
mov dword [ebp - 0x11c], 2
jmp 0x418d64
mov edx, dword [ebp - 0x11c]
add edx, 1
mov dword [ebp - 0x11c], edx
cmp dword [ebp - 0x11c], 0x802
jge 0x418da4
mov eax, dword [ebp + 8]
movsx ecx, word [eax + 0xfc]
cmp ecx, 0xffffffff
jne 0x418da4
mov edx, dword [ebp - 0x11c]
movsx eax, byte [ebp + edx - 0xb60]
test eax, eax
jne 0x418da2
mov ecx, dword [ebp + 8]
mov dx, word [ebp - 0x11c]
mov word [ecx + 0xfc], dx
jmp 0x418d55
mov eax, dword [ebp + 8]
movsx ecx, word [eax + 0xfc]
cmp ecx, 0xffffffff
jne 0x418dd9
push str.ERROR:_No_new_groups_can_be_created
push 1
call fcn.00436500
add esp, 8
mov edx, dword [ebp - 0x114]
push edx
call fcn.00431d50
add esp, 4
or eax, 0xffffffff
jmp 0x419137
push 0x127c
call fcn.005324a9
add esp, 4
mov dword [ebp - 0x10c], eax
cmp dword [ebp - 0x10c], 0
je 0x418f4f
mov dword [ebp - 0x11c], 1
jmp 0x418e14
mov eax, dword [ebp - 0x11c]
add eax, 1
mov dword [ebp - 0x11c], eax
mov ecx, dword [ebp - 0x11c]
cmp ecx, dword [ebp - 0x350]
jg 0x418f3e
mov edx, dword [ebp - 0x114]
push edx
call fcn.00532b62
add esp, 4
mov dword [ebp - 0x118], eax
push 0x127c
push 0
mov eax, dword [ebp - 0x10c]
push eax
call fcn.005323e0
add esp, 0xc
mov ecx, dword [ebp - 0x114]
push ecx
push 1
push 0x2bc
mov edx, dword [ebp - 0x10c]
push edx
call fcn.0053367b
add esp, 0x10
mov eax, dword [ebp - 0x10c]
add eax, 0x52
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x52
push ecx
call fcn.005327a0
add esp, 8
test eax, eax
jne 0x418f39
push 0
mov edx, dword [ebp - 0x118]
push edx
mov eax, dword [ebp - 0x114]
push eax
call fcn.00532940
add esp, 0xc
push 1
mov ecx, dword [ebp + 8]
push ecx
call fcn.00419f70
add esp, 8
push 0
mov edx, dword [ebp + 8]
push edx
call fcn.0041aee0
add esp, 8
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
test ecx, ecx
je 0x418ef7
push 8
push 0x556af4
mov edx, dword [ebp + 0xc]
push edx
call fcn.00532db5
add esp, 0xc
test eax, eax
je 0x418ef7
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x52
push ecx
call fcn.00532580
add esp, 8
mov edx, dword [ebp - 0x114]
push edx
push 1
push 0x2bc
mov eax, dword [ebp + 8]
push eax
call fcn.005337fa
add esp, 0x10
push 0
mov ecx, dword [ebp + 8]
push ecx
call fcn.0041aee0
add esp, 8
push 0
mov edx, dword [ebp + 8]
push edx
call fcn.00419f70
add esp, 8
mov dword [ebp - 0x330], 1
jmp 0x418f3e
jmp 0x418e05
mov eax, dword [ebp - 0x10c]
push eax
call fcn.00532828
add esp, 4
jmp 0x418f66
push str.ERROR:_Out_of_Memory_in_Save_classes
push 1
call fcn.00436500
add esp, 8
or eax, 0xffffffff
jmp 0x419137
cmp dword [ebp - 0x330], 0
jne 0x419117
mov ecx, dword [ebp - 0x114]
push ecx
call fcn.00532b62
add esp, 4
mov dword [ebp - 0x118], eax
mov edx, dword [ebp - 0x350]
add edx, 1
mov dword [ebp - 0x350], edx
mov eax, dword [ebp - 0x350]
push eax
mov ecx, dword [ebp - 0x114]
push ecx
call fcn.00455950
add esp, 8
mov edx, dword [ebp - 0x350]
sub edx, 1
imul edx, edx, 0x2bc
add edx, 6
mov dword [ebp - 0x32c], edx
mov eax, dword [ebp - 0x118]
cmp eax, dword [ebp - 0x32c]
jge 0x419063
mov ecx, dword [ebp - 0x32c]
sub ecx, dword [ebp - 0x118]
mov dword [ebp - 0x34c], ecx
push 0xff
push 0
lea edx, [ebp - 0x328]
push edx
call fcn.005323e0
add esp, 0xc
push 2
push 0
mov eax, dword [ebp - 0x114]
push eax
call fcn.00532940
add esp, 0xc
mov ecx, dword [ebp - 0x34c]
mov dword [ebp - 0x334], ecx
cmp dword [ebp - 0x334], 0xff
jle 0x419034
mov dword [ebp - 0x334], 0xff
mov edx, dword [ebp - 0x114]
push edx
mov eax, dword [ebp - 0x334]
push eax
push 1
lea ecx, [ebp - 0x328]
push ecx
call fcn.005337fa
add esp, 0x10
mov edx, dword [ebp - 0x34c]
sub edx, eax
mov dword [ebp - 0x34c], edx
jne 0x419012
push 0
mov eax, dword [ebp - 0x32c]
push eax
mov ecx, dword [ebp - 0x114]
push ecx
call fcn.00532940
add esp, 0xc
push 1
mov edx, dword [ebp + 8]
push edx
call fcn.00419f70
add esp, 8
push 0
mov eax, dword [ebp + 8]
push eax
call fcn.0041aee0
add esp, 8
mov ecx, dword [ebp - 0x114]
push ecx
push 1
push 0x2bc
mov edx, dword [ebp + 8]
push edx
call fcn.005337fa
add esp, 0x10
push 0
mov eax, dword [ebp + 8]
push eax
call fcn.0041aee0
add esp, 8
push 0
mov ecx, dword [ebp + 8]
push ecx
call fcn.00419f70
add esp, 8
mov edx, dword [ebp + 8]
movsx eax, word [edx + 0x5e]
cmp eax, 0xfffffc1a
je 0x419117
lea ecx, [ebp - 0x348]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004281d0
add esp, 8
mov eax, dword [ebp + 8]
add eax, 0x52
push eax
push 0x5c
lea ecx, [ebp - 0x348]
push ecx
push 0x5c44f8
push 0x556b28
lea edx, [ebp - 0x328]
push edx
call fcn.00532706
add esp, 0x18
mov eax, dword [ebp - 0x114]
push eax
call fcn.00431d50
add esp, 4
mov ecx, dword [ebp - 0x350]
mov dword [0x5c44f0], ecx
mov eax, dword [0x5c44f0]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00532783
mov esp, ebp
pop ebp
ret