Function at 0x4215d0
Capabilities:
Check for software breakpoints
Read file on windows

Disassembly:
sub esp, 0x4c
mov eax, dword [0x5b0c20]
xor eax, esp
mov dword [esp + 0x48], eax
push ebx
mov ebx, dword [esp + 0x54]
push edi
xor edi, edi
mov dword [esp + 0xc], edi
mov byte [esp + 0xb], 0xaa
cmp ebx, edi
je 0x4218e9
cmp dword [ebx + 0x37c], edi
je 0x4218e9
push ebp
push esi
push 0x400
lea esi, [ebx + 0x3b50]
push edi
push esi
mov dword [ebx + 0x3b40], edi
mov dword [ebx + 0x3b44], edi
mov dword [ebx + 0x3b48], edi
mov dword [ebx + 0x3b4c], edi
call fcn.00526520
mov ecx, dword [0x5b2ec8]
add esp, 0xc
call fcn.004359a0
test eax, eax
je 0x421677
mov eax, dword [ebx + 0x2af6]
mov ecx, dword [ebx + 0x2af2]
push eax
push ecx
mov ecx, dword [0x5b2ec8]
push 0x400
push esi
call fcn.00436b20
test eax, eax
je 0x421677
mov ebp, 1
mov dword [ebx + 0x3b44], ebp
mov dword [ebx + 0x3b4c], ebp
jmp 0x42167c
mov ebp, 1
lea edx, [esp + 0x13]
push edx
lea eax, [esp + 0x18]
push eax
push ebx
call fcn.00421570
mov eax, dword [esp + 0x20]
add esp, 0xc
mov dword [ebx + 0x3b40], eax
cmp eax, edi
je 0x4218e7
mov al, byte [esp + 0x13]
cmp al, 0xbb
jne 0x421702
mov ecx, dword [esp + 0x64]
push ecx
push ebx
mov dword [ebx + 0x3b48], ebp
call fcn.00428150
add esp, 8
cmp dword [ebx + 0x3b44], edi
je 0x4218e7
lea esi, [ebx + 0x3da0]
lea edi, [ebx + 0x8a8]
mov ecx, 0x18
rep movsd dword es:[edi], dword [esi]
lea esi, [ebx + 0x3d00]
lea edi, [ebx + 0x968]
mov ecx, 0x28
rep movsd dword es:[edi], dword [esi]
pop esi
pop ebp
pop edi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00524d83
add esp, 0x4c
ret
cmp al, 0xcc
jne 0x42175d
cmp dword [ebx + 0x3b44], edi
je 0x4218e7
lea esi, [ebx + 0x3da0]
lea edi, [ebx + 0x8a8]
mov ecx, 0x18
rep movsd dword es:[edi], dword [esi]
lea esi, [ebx + 0x3d00]
lea edi, [ebx + 0x968]
mov ecx, 0x28
rep movsd dword es:[edi], dword [esi]
pop esi
mov dword [ebx + 0x3b40], ebp
mov dword [ebx + 0x3b44], ebp
mov dword [ebx + 0x3b4c], ebp
pop ebp
pop edi
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00524d83
add esp, 0x4c
ret
call fcn.0044b6a0
mov esi, eax
mov dword [esp + 0x14], esi
cmp esi, edi
je 0x4218e7
jmp 0x421784
mov esi, dword [esp + 0x14]
cmp dword [ebx + 0x3b44], edi
jne 0x4218e7
cmp dword [ebx + 0x370], edi
jne 0x4217c6
cmp dword [ebx + 0x36c], edi
jne 0x4217c6
xor eax, eax
jmp 0x4217b0
movzx ecx, word [eax + str.A:key_storage.bin]
mov word [esp + eax + 0x18], cx
add eax, 2
cmp cx, di
jne 0x4217b0
jmp 0x4217e4
xor eax, eax
jmp 0x4217d0
movzx ecx, word [eax + str.A:_rb_flop_boot]
mov word [esp + eax + 0x18], cx
add eax, 2
cmp cx, di
jne 0x4217d0
mov dx, word [esi]
lea eax, [esp + 0x18]
push edi
push eax
mov word [esp + 0x20], dx
call fcn.005260d0
add esp, 8
test eax, eax
jne 0x4218d5
lea ecx, [esp + 0x18]
push 0x554630
push ecx
call fcn.00527bdc
mov ebp, eax
add esp, 8
cmp ebp, edi
je 0x4218d5
mov edi, edi
cmp dword [ebx + 0x370], edi
jne 0x421830
cmp dword [ebx + 0x36c], edi
je 0x42183f
push edi
push 0x200
push ebp
call fcn.00528134
add esp, 0xc
push ebp
push 1
push 0x400
lea esi, [ebx + 0x3b50]
push esi
call fcn.00527fdb
add esp, 0x10
cmp eax, 1
jne 0x4218c8
lea eax, [ebx + 0x2af2]
sub esi, eax
mov ecx, 8
lea edx, [esi + 0x2b0]
mov edi, edi
cmp ecx, 4
jb 0x421896
mov esi, dword [edx + eax]
cmp esi, dword [eax]
jne 0x421884
sub ecx, 4
add eax, 4
jmp 0x421870
cmp dword [ebx + 0x370], edi
jne 0x4218c8
cmp dword [ebx + 0x36c], edi
je 0x421820
jmp 0x4218c8
mov dword [ebx + 0x3b44], 1
lea esi, [ebx + 0x3da0]
lea edi, [ebx + 0x8a8]
mov ecx, 0x18
rep movsd dword es:[edi], dword [esi]
lea esi, [ebx + 0x3d00]
lea edi, [ebx + 0x968]
mov ecx, 0x28
rep movsd dword es:[edi], dword [esi]
xor edi, edi
push ebp
call fcn.005276ba
mov esi, dword [esp + 0x18]
add esp, 4
mov eax, dword [esi + 0x3f54]
mov dword [esp + 0x14], eax
cmp eax, edi
jne 0x421780
pop esi
pop ebp
mov ecx, dword [esp + 0x50]
pop edi
pop ebx
xor ecx, esp
call fcn.00524d83
add esp, 0x4c
ret