Function at 0x5b9230
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x220
mov eax, dword [0x93e25c]
push ebx
mov ebx, dword [esp + 0x22c]
push ebp
mov ebp, dword [ebx]
mov edx, dword [ebp + 0x94]
mov dword [esp + 0x224], eax
mov eax, dword [ebp + 0x90]
push esi
mov esi, dword [esp + 0x230]
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 4]
push edi
mov edi, dword [eax]
mov eax, dword [esi + 0x98]
xor ecx, ecx
test eax, 0x4000000
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x14], 1
mov dword [esp + 0x20], 0xffffffff
jne 0x5b929c
mov ecx, dword [ebp + 0x19c]
test eax, 0x400000
mov dword [esp + 0x18], ecx
jne 0x5b92d7
mov edx, dword [esp + 0x23c]
push edx
push str.__parallel_recovering__with_sort__MyISAM_table__s_n
call fcn.006d1d9e
lea eax, [esp + 0x21c]
push eax
push 0
push edi
call fcn.006313d0
push eax
push str.Data_records:__s_n
call fcn.006d1d9e
add esp, 0x1c
mov eax, dword [esi + 0x98]
or eax, 0x20000
mov dword [esi + 0x98], eax
mov edx, dword [ebx]
mov ecx, 0x24
test byte [edx + 0x1f8], cl
je 0x5b9300
or eax, 8
mov dword [esi + 0x98], eax
xor eax, eax
lea edi, [esp + 0x48]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x94]
push eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea ecx, [esp + 0xac]
push 0
push ecx
call fcn.005e2370
mov eax, dword [ebp + 0x128]
mov ecx, dword [esi + 0x78]
push esi
call fcn.005b3eb0
add esp, 0xc
test eax, eax
mov dword [esp + 0x80], eax
je 0x5b969e
mov edx, dword [ebp + 0x19c]
mov ecx, dword [esi + 0x6c]
push 0x10
push 1
push 0
push edx
mov edx, dword [ebx + 0xe4]
push 1
push ecx
lea eax, [esi + 0x2b8]
push edx
push eax
call fcn.005ddd50
add esp, 0x20
test eax, eax
jne 0x5b969e
mov eax, dword [esp + 0x240]
test eax, eax
jne 0x5b93eb
mov eax, dword [esi + 0x2b4]
mov ecx, dword [esp + 0x18]
mov edx, dword [esi + 0x70]
and eax, 0x30
push eax
mov eax, dword [ebx + 0xe4]
push 1
xor edi, edi
push edi
push ecx
push 2
push edx
push eax
lea ecx, [ebx + 0x130]
push ecx
call fcn.005ddd50
add esp, 0x20
test eax, eax
jne 0x5b969e
mov edx, dword [esp + 0x18]
mov eax, dword [esi + 0x70]
push 0x90
push 1
push edi
push edx
push 1
push eax
or edi, 0xffffffff
lea ecx, [esp + 0x18c]
push edi
push ecx
call fcn.005ddd50
add esp, 0x20
test eax, eax
jne 0x5b969e
jmp 0x5b93ee
or edi, 0xffffffff
mov edx, dword [esi + 0x78]
mov eax, dword [esp + 0x80]
imul edx, edx, 0x41c
mov ecx, dword [ebx + 0xe8]
add edx, eax
mov eax, dword [ebx + 0xe4]
mov dword [ebx + 0x1b0], eax
mov eax, dword [esp + 0x240]
or ecx, 0x10
test eax, eax
mov dword [esp + 0x84], edx
mov dword [ebx + 0xe8], ecx
jne 0x5b94f3
mov ecx, dword [esi + 0x2b0]
mov edx, dword [ebp + 0x1b0]
push 0
push ecx
push 0
push 6
push str..TMD
push 0x73a01c
lea eax, [esi + 0xa6]
push edx
push eax
call fcn.005dc850
add esp, 0x14
push eax
call fcn.005ded30
mov edi, eax
add esp, 0x10
test edi, edi
mov dword [esp + 0x20], edi
jge 0x5b948b
lea eax, [esi + 0xa6]
push eax
push str.Cant_create_new_tempfile:__s
push esi
call fcn.004012fd
add esp, 0xc
jmp 0x5b969e
mov ecx, dword [esp + 0x18]
xor eax, eax
or ecx, eax
je 0x5b94bb
mov edx, dword [esp + 0x18]
push str.datafile_header
push eax
push edx
push eax
push eax
mov eax, dword [ebx + 0xe4]
push eax
push edi
push esi
call fcn.005b23f0
add esp, 0x20
test eax, eax
jne 0x5b969e
test dword [esi + 0x98], 0x4000000
je 0x5b94e1
mov edx, dword [ebp + 0x1f8]
and edx, 0xfffffffb
mov eax, edx
mov byte [ebp + 5], al
shr eax, 8
mov dword [ebp + 0x1f8], edx
mov byte [ebp + 4], al
or eax, 0xffffffff
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x54], eax
mov dword [ebx + 0x1b0], edi
or edi, 0xffffffff
mov dword [ebx + 0xec], 0x401
test byte [esi + 0x98], 0x40
jne 0x5b957a
mov ecx, dword [ebp + 0x210]
mov edx, dword [ebp + 0x1bc]
push 2
push ecx
push edx
call fcn.005e4330
mov ecx, dword [ebp + 0x118]
add esp, 0xc
xor eax, eax
test ecx, ecx
jbe 0x5b9545
lea ebx, [ebx]
mov ecx, dword [ebp + 0x74]
mov dword [ecx + eax*8], edi
mov dword [ecx + eax*8 + 4], edi
mov ecx, dword [ebp + 0x118]
inc eax
cmp eax, ecx
jb 0x5b9530
mov cl, byte [ebp + 0x15]
xor eax, eax
test cl, cl
jbe 0x5b9563
mov edi, edi
mov edx, dword [ebp + 0x78]
mov dword [edx + eax*8], edi
mov dword [edx + eax*8 + 4], edi
movzx ecx, byte [ebp + 0x15]
inc eax
cmp eax, ecx
jb 0x5b9550
mov edx, dword [ebx + 4]
mov eax, dword [ebp + 0xc8]
mov dword [edx + 0x18], eax
mov ecx, dword [ebp + 0xcc]
mov dword [edx + 0x1c], ecx
jmp 0x5b95ae
mov edx, dword [ebp + 0x210]
mov eax, dword [ebp + 0x1bc]
push 3
push edx
push eax
call fcn.005e4330
add esp, 0xc
test eax, eax
jne 0x5b969e
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
not ecx
not edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x74], ebx
mov ebx, ebp
lea ecx, [esp + 0x48]
mov dword [esp + 0x78], esi
call fcn.005b46d0
mov eax, dword [esi + 0x338]
xor ebx, ebx
push ebx
push 2
push ebx
push ebx
push eax
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x90], ebx
call fcn.005e1d70
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], edx
mov dword [esi + 0x2c0], eax
mov dword [esi + 0x2c4], edx
mov ecx, dword [ebp + 0x234]
add esp, 0x14
cmp ecx, 1
jne 0x5b961a
mov ecx, dword [ebp + 0xfc]
mov edi, dword [ebp + 0x104]
inc ecx
cmp ecx, edi
ja 0x5b962d
mov ecx, edi
jmp 0x5b962d
cmp ecx, 2
jne 0x5b9627
mov ecx, dword [ebp + 0x104]
jmp 0x5b962d
mov ecx, dword [ebp + 0xf8]
test byte [esi + 0x98], 0x40
je 0x5b9644
mov ecx, dword [esp + 0x238]
mov edx, dword [ecx + 4]
mov eax, dword [edx]
jmp 0x5b964d
push ebx
push ecx
push edx
push eax
call fcn.006cfc60
mov ecx, dword [esp + 0x238]
mov edx, dword [ecx + 4]
inc eax
mov dword [esp + 0x60], eax
mov eax, dword [edx + 4]
mov dword [esi + 0x64], ebx
mov ecx, dword [ebp + 0xf8]
add ecx, 0x3b0
imul ecx, dword [ebp + 0x118]
push 0x20
push ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ebx
call fcn.005d8b50
add esp, 8
cmp eax, ebx
mov dword [esp + 0x1c], eax
jne 0x5b96ec
push str.Not_enough_memory_for_key_
push esi
call fcn.004012fd
add esp, 8
mov ebx, dword [esp + 0x238]
mov esi, dword [esp + 0x234]
mov eax, dword [ebp + 0x210]
mov edi, dword [ebp + 0x1bc]
push 1
push eax
push edi
call fcn.005e4330
add esp, 0xc
test eax, eax
je 0x5b9ea0
call fcn.005e0030
mov eax, dword [eax]
push eax
push str._d_when_trying_to_write_bufferts
push esi
call fcn.004012fd
add esp, 0xc
mov eax, 1
jmp 0x5b9eb7
mov ecx, dword [esp + 0x238]
mov dword [ebp + 0x48], ebx
lea edx, [esi + 0x864]
mov dword [esp + 0x34], edx
mov edx, dword [ecx + 4]
mov dword [edx + 4], ebx
mov edx, dword [ecx + 4]
mov dword [edx], ebx
mov ecx, dword [ecx + 4]
mov dword [ecx + 8], ebx
mov dword [ecx + 0xc], ebx
mov ecx, dword [ebp + 0x118]
xor edi, edi
cmp ecx, ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x10], edi
jbe 0x5b99ec
mov dword [esp + 0x30], ebx
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
imul edx, edx, 0x3b0
mov esi, dword [esp + 0x2c]
lea ebx, [edx + eax]
mov edx, dword [esp + 0x30]
mov dword [ebx + 0x348], esi
mov ecx, dword [ebp + 0x18c]
lea eax, [edx + ecx]
mov dword [ebx + 0x36c], eax
mov eax, dword [eax + 0x1c]
mov dword [ebx + 0x370], eax
mov eax, 1
xor edx, edx
mov ecx, esi
call fcn.006cfb80
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
and eax, ecx
and edx, edi
or eax, edx
jne 0x5b97cb
mov edi, dword [esp + 0x34]
mov ecx, dword [ebx + 0x36c]
movzx ecx, word [ecx + 4]
mov esi, dword [esp + 0x234]
mov eax, dword [ebp + 0x70]
mov edx, edi
sub edx, esi
shl ecx, 2
sub edx, 0x864
sar edx, 2
lea esi, [eax + edx*4]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x38], 0
jmp 0x5b999a
mov edi, dword [esp + 0x234]
test dword [edi + 0x98], 0x400000
mov dword [esp + 0x38], 1
jne 0x5b97f5
inc esi
push esi
push str.__Fixing_index__d_n
call fcn.006d1d9e
add esp, 8
mov eax, dword [ebx + 0x36c]
mov cl, byte [eax + 6]
test cl, cl
jns 0x5b9818
mov dword [ebx + 0x394], 0x5b6f40
mov dword [ebx + 0x398], 0x5b7450
jmp 0x5b982c
mov dword [ebx + 0x394], 0x5b6eb0
mov dword [ebx + 0x398], fcn.005b7060
mov eax, dword [esp + 0x18]
mov dword [ebx + 0x390], 0x5b38a0
mov dword [ebx + 0x39c], 0x5b1f60
mov ecx, dword [edi + 0x2ac]
mov dword [ebx + 0x338], eax
xor eax, eax
mov dword [ebx + 0x38c], ecx
mov dword [ebx + 0x33c], eax
lea edx, [esp + 0x48]
mov dword [ebx + 0x374], edx
mov byte [ebx + 0x369], 0
mov byte [ebx + 0x368], 0
mov byte [ebx + 0x36a], 0
mov ecx, dword [ebp + 0x19c]
mov edx, ecx
mov dword [ebx + 0x328], ecx
mov dword [ebx + 0x32c], eax
mov dword [ebx + 0x330], edx
mov dword [ebx + 0x334], eax
mov ecx, dword [ebp + 0xf8]
imul ecx, dword [esp + 0x10]
mov edx, dword [ebp + 0x118]
mov eax, dword [esp + 0x1c]
imul edx, edx, 0x3b0
add ecx, eax
lea eax, [ebx + 0x37c]
push eax
add edx, ecx
mov ecx, dword [esp + 0x23c]
push 0xffffffffffffffff
push ecx
mov dword [ebx + 0x388], edx
call fcn.005ab940
add esp, 0xc
test eax, eax
je 0x5b9a57
mov edx, dword [ebp + 0x208]
mov eax, dword [ebx + 0x370]
mov dword [ebx + 0x34c], edx
mov cl, byte [eax + 0x12]
test cl, cl
je 0x5b996e
add eax, 0xe
mov esi, 0x7f
mov edx, 0xff
lea esp, [esp]
movzx ecx, word [eax + 2]
mov edi, dword [ebx + 0x34c]
add ecx, edi
mov dword [ebx + 0x34c], ecx
test byte [eax], 1
je 0x5b993b
cmp word [eax + 2], dx
sbb edi, edi
and edi, 0xfffffffe
add edi, 3
add edi, ecx
mov dword [ebx + 0x34c], edi
xor ecx, ecx
test byte [eax], 0x28
je 0x5b9959
cmp word [eax + 2], si
mov edi, dword [ebx + 0x34c]
sbb ecx, ecx
add ecx, 3
add edi, ecx
mov dword [ebx + 0x34c], edi
test byte [eax], 0x10
je 0x5b9964
inc dword [ebx + 0x34c]
mov cl, byte [eax + 0x1c]
add eax, 0x18
test cl, cl
jne 0x5b9910
mov eax, dword [ebx + 0x36c]
mov cl, byte [eax + 6]
test cl, cl
jns 0x5b999a
mov edx, dword [eax + 0x1c]
mov eax, dword [edx]
mov ecx, dword [eax + 0x58]
mov eax, dword [ebx + 0x34c]
imul ecx, ecx, 0x1f
sub ecx, 0xfe
add eax, ecx
mov dword [ebx + 0x34c], eax
mov edx, dword [ebx + 0x36c]
movzx eax, word [edx + 4]
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x10]
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x38]
mov ecx, dword [ebp + 0x118]
add edi, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x30]
inc eax
add edx, 0x3c
cmp eax, ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
jb 0x5b9730
mov esi, dword [esp + 0x234]
mov eax, dword [esp + 0x1c]
xor ebx, ebx
cmp dword [esp + 0x240], ebx
sete cl
mov dword [esp + 0x68], edi
mov byte [eax + 0x369], 1
mov byte [eax + 0x368], cl
mov edx, dword [esi + 0x98]
shr edx, 3
and dl, 1
mov byte [eax + 0x36a], dl
lea eax, [esp + 0x94]
push eax
mov dword [esp + 0x90], ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp edi, 1
jbe 0x5b9a8a
cmp dword [esp + 0x240], ebx
push edi
je 0x5b9a62
push ebx
lea ecx, [esp + 0xec]
push ecx
lea eax, [esi + 0x2b8]
push eax
call fcn.005dd7c0
add esp, 0x10
jmp 0x5b9a91
push str.Not_enough_memory_
push edi
jmp 0x5b9696
mov edx, dword [esp + 0x23c]
add edx, 0x130
push edx
lea eax, [esp + 0xec]
push eax
lea ecx, [esp + 0x180]
push ecx
call fcn.005dd7c0
add esp, 0x10
jmp 0x5b9a91
mov dword [esp + 0x16c], ebx
lea edx, [esp + 0xd8]
push edx
call fcn.005e2580
push ebx
call fcn.005e93e0
mov eax, dword [esp + 0x70]
add esp, 8
cmp eax, ebx
mov dword [esp + 0x10], ebx
jbe 0x5b9b77
mov ebx, dword [esp + 0x1c]
add ebx, 8
mov edi, edi
mov eax, dword [esp + 0x240]
test eax, eax
jne 0x5b9adc
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5b9adc
lea esi, [esp + 0x174]
jmp 0x5b9ae9
mov esi, dword [esp + 0x234]
add esi, 0x2b8
mov ecx, 0x28
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x234]
mov eax, dword [esi + 0x74]
xor edx, edx
div dword [esp + 0x68]
lea ecx, [esp + 0xd8]
mov dword [ebx + 0x34c], eax
lea eax, [ebx - 8]
push eax
push 0x5cfba0
push ecx
push eax
call fcn.005e9680
add esp, 0x10
test eax, eax
je 0x5b9b55
push str.Cannot_start_a_repair_thread
push esi
call fcn.004012fd
mov eax, dword [esp + 0x174]
add esp, 8
test eax, eax
je 0x5b9b48
push ebx
call fcn.005dd840
add esp, 4
mov dword [esp + 0x8c], 1
jmp 0x5b9b5c
inc dword [esp + 0x90]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x68]
inc eax
add ebx, 0x3b0
cmp eax, ecx
mov dword [esp + 0x10], eax
jb 0x5b9ac0
lea edx, [esp + 0xd8]
push edx
call fcn.005e25c0
mov eax, dword [esp + 0x94]
add esp, 4
test eax, eax
je 0x5b9bc3
jmp 0x5b9ba0
lea eax, [esp + 0x94]
push eax
lea ecx, [esp + 0xb0]
push ecx
call fcn.005e2640
mov eax, dword [esp + 0x98]
add esp, 8
test eax, eax
jne 0x5b9ba0
lea edx, [esp + 0x94]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edi, dword [esp + 0x1c]
push edi
call fcn.005d0710
add esp, 4
test eax, eax
mov dword [esp + 0x14], eax
je 0x5b9c00
mov esi, dword [esp + 0x234]
mov ebx, dword [esp + 0x238]
mov byte [esi + 0xa4], 1
jmp 0x5b96ac
mov al, byte [edi + 0x368]
test al, al
mov dword [esp + 0x14], 1
je 0x5b9cd5
lea eax, [esp + 0x48]
push 1
push eax
call fcn.005b3fd0
add esp, 8
test eax, eax
jne 0x5b969e
mov ebx, dword [esp + 0x238]
lea ecx, [ebx + 0x130]
push ecx
call fcn.005dd750
add esp, 4
test eax, eax
jne 0x5b96a5
mov esi, dword [esp + 0x234]
test dword [esi + 0x98], 0x200000
je 0x5b9c73
mov eax, dword [ebx + 4]
mov edx, dword [eax]
mov ecx, dword [esp + 0x3c]
inc edx
cmp edx, ecx
jae 0x5b9c73
mov dword [eax], ecx
jmp 0x5b96ac
mov ecx, dword [edi + 0x338]
mov eax, dword [ebx + 4]
mov dword [eax + 0x20], ecx
mov edx, dword [edi + 0x33c]
mov dword [eax + 0x24], edx
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 0x20]
mov dword [ebp + 0x38], ecx
mov edx, dword [eax + 0x24]
push 0
mov dword [ebp + 0x3c], edx
call fcn.006d15df
mov dword [ebp + 0x9c], eax
mov eax, dword [ebx + 0xe4]
push 0
push eax
call fcn.005dc1d0
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x24]
mov dword [ebx + 0xe4], ecx
add esp, 0xc
mov dword [ebp + 0x234], edx
mov dword [ebp + 0x19c], eax
jmp 0x5b9cf8
mov ebx, dword [esp + 0x238]
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x330]
mov esi, dword [esp + 0x234]
mov dword [ecx + 0x20], edx
mov eax, dword [edi + 0x334]
mov dword [ecx + 0x24], eax
mov eax, dword [esp + 0x240]
test eax, eax
je 0x5b9d5d
mov ecx, dword [ebx + 4]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x54]
add eax, ecx
mov ecx, dword [esp + 0x44]
adc ecx, edi
xor edi, edi
cmp eax, edx
jne 0x5b9d27
cmp ecx, edi
je 0x5b9d5d
push str.Couldnt_fix_table_with_quick_recovery:_Found_wrong_number_of_deleted_records
push esi
call fcn.004012fd
push str.Run_recovery_again_without__q
push esi
call fcn.004012fd
mov eax, dword [esi + 0x98]
add esp, 0x10
or eax, 0x100000
mov byte [esi + 0xa4], 1
mov dword [esi + 0x98], eax
jmp 0x5b96ac
mov eax, dword [esp + 0x240]
test ah, 0x10
je 0x5b9dcf
mov eax, dword [ebp + 0x1f8]
mov ecx, dword [ebx + 4]
mov edi, dword [ecx + 0x20]
and al, 4
neg al
sbb eax, eax
and eax, 7
cdq
add eax, edi
mov edi, dword [ecx + 0x24]
mov ecx, dword [esp + 0x48]
adc edx, edi
cmp eax, ecx
jne 0x5b9d94
cmp edx, dword [esp + 0x4c]
je 0x5b9dcf
mov ecx, dword [ebx]
mov edi, dword [ecx + 0x138]
test edi, edi
jne 0x5b9dcf
push 0
push 0
push edx
mov edx, dword [ebx + 0xe4]
push eax
push edx
call fcn.005e81d0
add esp, 0x14
test eax, eax
je 0x5b9dcf
call fcn.005e0030
mov eax, dword [eax]
push eax
push str.Cant_change_size_of_datafile___error:__d
push esi
call fcn.0040ad03
add esp, 0xc
test byte [esi + 0x98], 8
je 0x5b9de1
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x64]
mov dword [ecx + 0x28], edx
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp + 0x210]
push 0
push 0
push ecx
push edx
push eax
call fcn.005e81d0
add esp, 0x14
test eax, eax
je 0x5b9e19
call fcn.005e0030
mov ecx, dword [eax]
push ecx
push str.Cant_change_size_of_indexfile__error:__d
push esi
call fcn.0040ad03
add esp, 0xc
test dword [esi + 0x98], 0x400000
jne 0x5b9e7a
mov edx, dword [ebx + 4]
mov eax, dword [edx]
cmp dword [esp + 0x3c], eax
je 0x5b9e4e
lea ecx, [esp + 0x214]
push ecx
push 0
push eax
call fcn.006313d0
push eax
push str.Data_records:__s_n
call fcn.006d1d9e
add esp, 0x14
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov edx, eax
or edx, ecx
je 0x5b9e7a
lea edx, [esp + 0x214]
push edx
push ecx
push eax
call fcn.006313d0
push eax
push str._s_records_have_been_removed
push esi
call fcn.0040ad03
add esp, 0x18
mov edx, dword [ebx + 4]
lea eax, [ebp + 0x18]
cmp eax, edx
mov dword [esp + 0x14], 0
je 0x5b96ac
mov ecx, 0xc
mov esi, edx
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x5b96a5
mov al, byte [esi + 0xa1]
test al, al
jne 0x5b9eb5
push 1
push edi
call fcn.005e3530
add esp, 8
xor eax, eax
mov edi, dword [esp + 0x14]
lea ecx, [ebx + 0x130]
or edi, eax
push ecx
mov dword [esp + 0x18], edi
call fcn.005dd750
mov eax, dword [esp + 0x244]
add esp, 4
test eax, eax
jne 0x5b9eeb
lea edx, [esp + 0x174]
push edx
call fcn.005dd750
add esp, 4
test edi, edi
jne 0x5b9f5e
mov eax, dword [esp + 0x20]
test eax, eax
jl 0x5b9fda
push edi
push eax
call fcn.005dc1d0
mov dword [ebx + 0xe4], 0xffffffff
mov eax, dword [esi + 0x98]
mov ecx, dword [ebp + 0x13c]
mov edx, dword [ebp + 0x1b0]
and eax, 4
shl eax, 6
push eax
push ecx
push str..TMD
push str..MYD
push edx
or edi, 0xffffffff
call fcn.005b22e0
add esp, 0x1c
test eax, eax
jne 0x5b9f54
push 0xffffffffffffffff
push ebp
push ebx
call fcn.005ad680
add esp, 0xc
test eax, eax
je 0x5b9fd6
mov dword [esp + 0x14], 1
jmp 0x5b9f62
mov edi, dword [esp + 0x20]
mov eax, dword [esi + 0x84]
test eax, eax
jne 0x5b9f82
call fcn.005e0030
mov eax, dword [eax]
push eax
push str._d_when_fixing_table
push esi
call fcn.004012fd
add esp, 0xc
test edi, edi
jl 0x5b9fb8
push 0
push edi
call fcn.005dc1d0
mov ecx, dword [ebp + 0x13c]
push ecx
lea edx, [esi + 0xa6]
push edx
call fcn.005e8350
mov eax, dword [ebx + 0xe4]
add esp, 0x10
cmp eax, edi
jne 0x5b9fb8
mov dword [ebx + 0xe4], 0xffffffff
mov eax, dword [ebx]
mov cl, byte [eax + 0xb4]
mov edi, dword [esp + 0x14]
or cl, 6
mov byte [eax + 0xb4], cl
or dword [ebx + 0xec], 1
jmp 0x5b9ff9
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
cmp eax, dword [ebp + 0x90]
jne 0x5b9ff9
mov ecx, dword [esp + 0x28]
cmp ecx, dword [ebp + 0x94]
jne 0x5b9ff9
and byte [ebp + 0xb4], 0xef
mov cl, byte [ebp + 0xb4]
lea edx, [esp + 0xac]
or cl, 0x20
push edx
mov byte [ebp + 0xb4], cl
call fcn.005e23e0
add esp, 4
lea eax, [esp + 0x94]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov ecx, dword [esp + 0x88]
push ecx
call fcn.005d8be0
mov edx, dword [esp + 0x84]
push edx
call fcn.005d8be0
mov eax, dword [esp + 0x24]
push eax
call fcn.005d8be0
mov ecx, dword [esp + 0x88]
push ecx
call fcn.005d8be0
lea edx, [esi + 0x2b8]
push edx
call fcn.005dd750
mov ecx, dword [ebx + 0xe8]
and ecx, 0xffffffed
add esp, 0x14
test edi, edi
mov dword [ebx + 0xe8], ecx
jne 0x5ba08f
test dword [esi + 0x98], 0x4000000
je 0x5ba08f
and byte [ebp + 4], 0xfb
mov dword [ebp + 0x19c], edi
mov ecx, dword [esp + 0x22c]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
call fcn.006cedd0
add esp, 0x220
ret