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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x514
mov eax, dword [0x4f6fc0]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x4fc], 0
mov dword [ebp - 0x504], 0
mov dword [ebp - 0x4f4], 0
mov dword [ebp - 0x50c], 0
mov dword [ebp - 0x514], 0
mov dword [ebp - 0x500], 0
mov dword [ebp - 0x508], 0
mov dword [ebp - 0x4f8], 0
xor eax, eax
mov word [ebp - 0x4f0], ax
xor ecx, ecx
mov word [ebp - 0x4e4], cx
mov dl, byte [0x4ff18f]
mov byte [ebp - 0x114], dl
push 0xfe
push 0
lea eax, [ebp - 0x113]
push eax
call fcn.004b6780
add esp, 0xc
mov cl, byte [0x4ff190]
mov byte [ebp - 0x314], cl
push 0xfe
push 0
lea edx, [ebp - 0x313]
push edx
call fcn.004b6780
add esp, 0xc
mov al, byte [0x4ff192]
mov byte [ebp - 0x214], al
push 0xfe
push 0
lea ecx, [ebp - 0x213]
push ecx
call fcn.004b6780
add esp, 0xc
mov dl, byte [0x4ff194]
mov byte [ebp - 0x414], dl
push 0xfe
push 0
lea eax, [ebp - 0x413]
push eax
call fcn.004b6780
add esp, 0xc
mov cl, byte [0x4ff195]
mov byte [ebp - 0x14], cl
xor edx, edx
mov dword [ebp - 0x13], edx
mov dword [ebp - 0xf], edx
mov dword [ebp - 0xb], edx
mov word [ebp - 7], dx
mov byte [ebp - 5], dl
mov dword [ebp - 0x510], 0
mov dword [ebp - 0x4e0], 0
mov dword [ebp - 0x4ec], 0
push 0xc8
push 0
lea eax, [ebp - 0x4dc]
push eax
call fcn.004b6780
add esp, 0xc
mov ecx, 1
imul ecx, ecx, 0
mov edx, dword [ebp + 0xc]
movsx eax, byte [edx + ecx]
test eax, eax
jne 0x424bb5
xor eax, eax
jmp 0x4251a0
lea ecx, [ebp - 0x14]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00431540
add esp, 8
mov eax, dword [ebp + 0xc]
push eax
push 0x5c
mov ecx, dword [ebp + 8]
add ecx, 0x52
push ecx
push 0x5c
lea edx, [ebp - 0x14]
push edx
push 0x4f93d8
push 0x4e18c0
lea eax, [ebp - 0x314]
push eax
call fcn.004b6e08
add esp, 0x20
push 1
push 0x4e18e0
lea ecx, [ebp - 0x314]
push ecx
call fcn.00419d20
add esp, 0xc
mov dword [ebp - 0x4e0], eax
cmp dword [ebp - 0x4e0], 0
jne 0x424c1d
xor eax, eax
jmp 0x4251a0
lea edx, [ebp - 0x14]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00431540
add esp, 8
mov ecx, dword [ebp + 0xc]
push ecx
push 0x5c
mov edx, dword [ebp + 8]
add edx, 0x52
push edx
push 0x5c
lea eax, [ebp - 0x14]
push eax
push 0x4f93d8
push str._s_s_c_s.cls_c_s.NEW
lea ecx, [ebp - 0x214]
push ecx
call fcn.004b6e08
add esp, 0x20
lea edx, [ebp - 0x214]
push edx
call fcn.00419360
add esp, 4
push 1
push 0x4e18fc
lea eax, [ebp - 0x214]
push eax
call fcn.00419d20
add esp, 0xc
mov dword [ebp - 0x4ec], eax
cmp dword [ebp - 0x4ec], 0
jne 0x424cad
mov ecx, dword [ebp - 0x4e0]
push ecx
call fcn.00419ca0
add esp, 4
mov dword [ebp - 0x4e0], 0
xor eax, eax
jmp 0x4251a0
call fcn.0049f2d0
push eax
lea edx, [ebp - 0x114]
push edx
call fcn.004b5e60
add esp, 8
push 4
push 1
lea eax, [ebp - 0x114]
push eax
call fcn.0042cac0
add esp, 0xc
movsx ecx, ax
mov dword [ebp - 0x500], ecx
push 2
push 6
lea edx, [ebp - 0x114]
push edx
call fcn.0042cac0
add esp, 0xc
cwde
mov dword [ebp - 0x508], eax
push 2
push 9
lea ecx, [ebp - 0x114]
push ecx
call fcn.0042cac0
add esp, 0xc
movsx edx, ax
mov dword [ebp - 0x4f8], edx
lea eax, [ebp - 0x114]
push eax
lea ecx, [ebp - 0x4f0]
push ecx
call fcn.00480e80
add esp, 8
mov edx, dword [ebp - 0x4e0]
push edx
call fcn.0045c650
add esp, 4
mov dword [ebp - 0x4fc], eax
push 0
mov eax, dword [ebp - 0x4ec]
push eax
call fcn.00462010
add esp, 8
mov dword [ebp - 0x4e8], 1
jmp 0x424d6b
mov ecx, dword [ebp - 0x4e8]
add ecx, 1
mov dword [ebp - 0x4e8], ecx
mov edx, dword [ebp - 0x4e8]
cmp edx, dword [ebp - 0x4fc]
jg 0x424e2a
mov eax, dword [ebp - 0x4e0]
push eax
push 1
push 0xc8
lea ecx, [ebp - 0x4dc]
push ecx
call fcn.004b8e47
add esp, 0x10
push 0
push 3
lea edx, [ebp - 0x4dc]
push edx
call fcn.00411510
add esp, 0xc
movsx eax, word [ebp - 0x4dc]
cmp eax, 0x76c
jle 0x424e25
movsx ecx, word [ebp - 0x4dc]
sub ecx, 0x7bc
shl ecx, 9
movsx edx, word [ebp - 0x4da]
shl edx, 5
add ecx, edx
movsx eax, word [ebp - 0x4d8]
add ecx, eax
mov word [ebp - 0x4e4], cx
movsx ecx, word [ebp - 0x4e4]
movsx edx, word [ebp - 0x4f0]
add edx, 2
cmp ecx, edx
jge 0x424e25
movsx eax, word [ebp - 0x4dc]
mov dword [ebp - 0x500], eax
movsx ecx, word [ebp - 0x4da]
mov dword [ebp - 0x508], ecx
movsx edx, word [ebp - 0x4d8]
mov dword [ebp - 0x4f8], edx
jmp 0x424e2a
jmp 0x424d5c
push 0
push 4
mov eax, dword [ebp - 0x4e0]
push eax
call fcn.004b8f82
add esp, 0xc
mov dword [ebp - 0x4e8], 1
jmp 0x424e58
mov ecx, dword [ebp - 0x4e8]
add ecx, 1
mov dword [ebp - 0x4e8], ecx
mov edx, dword [ebp - 0x4e8]
cmp edx, dword [ebp - 0x4fc]
jg 0x4250cb
mov eax, dword [ebp - 0x4e8]
cdq
mov ecx, 0x64
idiv ecx
test edx, edx
jne 0x424eb6
mov edx, dword [ebp - 0x4fc]
push edx
mov eax, dword [ebp - 0x4e8]
push eax
push str.Verifying_study_records__d_of__d
lea ecx, [ebp - 0x114]
push ecx
call fcn.004b6e08
add esp, 0x10
mov edx, dword [ebp + 0xc]
add edx, 9
push edx
lea eax, [ebp - 0x114]
push eax
push 0
call fcn.0049a5b0
add esp, 0xc
mov ecx, dword [ebp - 0x4e0]
push ecx
push 1
push 0xc8
lea edx, [ebp - 0x4dc]
push edx
call fcn.004b8e47
add esp, 0x10
push 0
push 3
lea eax, [ebp - 0x4dc]
push eax
call fcn.00411510
add esp, 0xc
lea ecx, [ebp - 0x4dc]
push ecx
call fcn.00433ba0
add esp, 4
mov dword [ebp - 0x4f4], eax
movsx edx, word [ebp - 0x4dc]
cmp edx, 0x7bc
jle 0x424f22
movsx eax, word [ebp - 0x4c0]
cmp eax, 0x12c
jle 0x424f22
mov dword [ebp - 0x4f4], 0
cmp dword [ebp + 0x10], 0
je 0x424f76
movsx ecx, word [ebp - 0x4dc]
cmp dword [ebp + 0x10], ecx
jne 0x424f76
movsx edx, word [ebp - 0x4da]
cmp dword [ebp + 0x14], edx
jne 0x424f76
movsx eax, word [ebp - 0x4d8]
cmp dword [ebp + 0x18], eax
jne 0x424f76
mov ecx, dword [ebp + 0x1c]
push ecx
lea edx, [ebp - 0x4d6]
push edx
call fcn.004b68e0
add esp, 8
test eax, eax
jne 0x424f76
mov eax, 0x3e7
mov word [ebp - 0x4a2], ax
mov dword [ebp + 0x10], 0
cmp dword [ebp - 0x4f4], 1
jne 0x4250c6
mov dword [ebp - 0x514], 0
movsx ecx, word [ebp - 0x4dc]
cmp ecx, 0x76c
jle 0x425032
movsx edx, word [ebp - 0x4dc]
sub edx, 0x7bc
shl edx, 9
movsx eax, word [ebp - 0x4da]
shl eax, 5
add edx, eax
movsx ecx, word [ebp - 0x4d8]
add edx, ecx
mov word [ebp - 0x4e4], dx
movsx edx, word [ebp - 0x4e4]
movsx eax, word [ebp - 0x4f0]
add eax, 2
cmp edx, eax
jle 0x42500b
mov cx, word [ebp - 0x500]
mov word [ebp - 0x4dc], cx
mov dx, word [ebp - 0x508]
mov word [ebp - 0x4da], dx
mov ax, word [ebp - 0x4f8]
mov word [ebp - 0x4d8], ax
movsx ecx, word [ebp - 0x4dc]
mov dword [ebp - 0x500], ecx
movsx edx, word [ebp - 0x4da]
mov dword [ebp - 0x508], edx
movsx eax, word [ebp - 0x4d8]
mov dword [ebp - 0x4f8], eax
movsx ecx, word [ebp - 0x4dc]
cmp ecx, 0x76c
jle 0x425057
cmp dword [ebp - 0x4cc], 0xf0
jle 0x425057
mov dword [ebp - 0x4cc], 0xf0
mov edx, dword [ebp - 0x504]
add edx, 1
mov dword [ebp - 0x504], edx
mov eax, dword [ebp - 0x504]
sub eax, 1
imul eax, eax, 0xc8
add eax, 4
mov dword [ebp - 0x510], eax
push 0
mov ecx, dword [ebp - 0x510]
push ecx
mov edx, dword [ebp - 0x4ec]
push edx
call fcn.004b8f82
add esp, 0xc
push 0
push 3
lea eax, [ebp - 0x4dc]
push eax
call fcn.00411510
add esp, 0xc
mov ecx, dword [ebp - 0x4ec]
push ecx
push 0xc8
push 1
lea edx, [ebp - 0x4dc]
push edx
call fcn.004b9519
add esp, 0x10
jmp 0x424e49
mov eax, dword [ebp - 0x504]
push eax
mov ecx, dword [ebp - 0x4ec]
push ecx
call fcn.00462010
add esp, 8
mov edx, dword [ebp - 0x4e0]
push edx
call fcn.00419ca0
add esp, 4
mov dword [ebp - 0x4e0], 0
mov eax, dword [ebp - 0x4ec]
push eax
call fcn.00419ca0
add esp, 4
mov dword [ebp - 0x4ec], 0
lea ecx, [ebp - 0x14]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00431540
add esp, 8
mov eax, dword [ebp + 0xc]
push eax
push 0x5c
mov ecx, dword [ebp + 8]
add ecx, 0x52
push ecx
push 0x5c
lea edx, [ebp - 0x14]
push edx
push 0x4f93d8
push str._s_s_c_s.cls_c_s.BAD
lea eax, [ebp - 0x414]
push eax
call fcn.004b6e08
add esp, 0x20
lea ecx, [ebp - 0x414]
push ecx
lea edx, [ebp - 0x314]
push edx
call fcn.0049b850
add esp, 8
mov dword [ebp - 0x4f4], eax
cmp dword [ebp - 0x4f4], 1
jne 0x42519a
lea eax, [ebp - 0x314]
push eax
lea ecx, [ebp - 0x214]
push ecx
call fcn.0049b850
add esp, 8
mov dword [ebp - 0x4f4], eax
mov dword [ebp - 0x50c], 1
mov eax, dword [ebp - 0x50c]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004b6253
mov esp, ebp
pop ebp
ret