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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x48c
mov eax, dword [0x93e25c]
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
mov ebx, dword [edi]
mov edx, dword [edi + 4]
mov ecx, dword [ebx + 0x94]
mov dword [esp + 0x494], eax
mov eax, dword [ebx + 0x90]
mov dword [esp + 0x20], eax
mov eax, dword [edx]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x98]
test eax, 0x4000000
mov dword [esp + 0x24], ecx
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0xffffffff
je 0x5b85b7
mov dword [esp + 0x18], 0
jmp 0x5b85c1
mov ecx, dword [ebx + 0x19c]
mov dword [esp + 0x18], ecx
test eax, 0x400000
jne 0x5b85f8
mov edx, dword [ebp + 0x10]
push edx
push str.__recovering__with_sort__MyISAM_table__s_n
call fcn.006d1d9e
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x484]
push eax
push 0
push ecx
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 [edi]
mov ecx, 0x24
test byte [edx + 0x1f8], cl
je 0x5b8621
or eax, 8
mov dword [esi + 0x98], eax
xor eax, eax
lea edi, [esp + 0x38]
rep stosd dword es:[edi], eax
mov ecx, 0xec
lea edi, [esp + 0xc8]
rep stosd dword es:[edi], eax
mov eax, dword [ebx + 0x128]
mov ecx, dword [esi + 0x78]
push esi
call fcn.005b3eb0
add esp, 4
test eax, eax
mov dword [esp + 0x70], eax
je 0x5b8eb9
mov ecx, dword [ebx + 0x19c]
mov edx, dword [esi + 0x6c]
mov edi, dword [ebp + 0xc]
push 0x10
push 1
push 0
push ecx
mov ecx, dword [edi + 0xe4]
push 1
push edx
lea eax, [esi + 0x2b8]
push ecx
push eax
mov dword [esp + 0x54], eax
call fcn.005ddd50
add esp, 0x20
test eax, eax
jne 0x5b8eb9
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x5b86cc
mov edx, dword [esi + 0x2b4]
mov ecx, dword [esi + 0x70]
and edx, 0x30
push edx
mov edx, dword [edi + 0xe4]
push 1
xor eax, eax
push eax
mov eax, dword [esp + 0x24]
push eax
push 2
push ecx
push edx
lea eax, [edi + 0x130]
push eax
call fcn.005ddd50
add esp, 0x20
test eax, eax
jne 0x5b8eb9
mov ecx, dword [esi + 0x78]
mov edx, dword [esp + 0x70]
imul ecx, ecx, 0x41c
mov eax, dword [edi + 0xe8]
add ecx, edx
mov edx, dword [edi + 0xe4]
or eax, 0x10
mov dword [esp + 0x74], ecx
mov dword [edi + 0xe8], eax
mov dword [edi + 0x1b0], edx
mov eax, dword [ebx + 0xf8]
push 0
push eax
call fcn.005d8b50
add esp, 8
test eax, eax
mov dword [esp + 0x450], eax
je 0x5b9038
lea ecx, [esp + 0x444]
push ecx
push 0xffffffffffffffff
push edi
call fcn.005ab940
add esp, 0xc
test eax, eax
je 0x5b9038
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x5b8801
mov edx, dword [esi + 0x2b0]
mov ecx, dword [ebx + 0x1b0]
push 0
push edx
push 0
push 6
push str..TMD
push 0x73a01c
lea eax, [esi + 0xa6]
push ecx
push eax
call fcn.005dc850
add esp, 0x14
push eax
call fcn.005ded30
add esp, 0x10
test eax, eax
mov dword [esp + 0x14], eax
jge 0x5b8798
lea eax, [esi + 0xa6]
push eax
push str.Cant_create_new_tempfile:__s
push esi
call fcn.004012fd
add esp, 0xc
jmp 0x5b8eb9
mov edx, dword [esp + 0x18]
xor ecx, ecx
or edx, ecx
je 0x5b87ce
mov edx, dword [edi + 0xe4]
push str.datafile_header
push ecx
mov ecx, dword [esp + 0x20]
push ecx
push 0
push 0
push edx
push eax
push esi
call fcn.005b23f0
add esp, 0x20
test eax, eax
jne 0x5b8eb9
mov eax, dword [esp + 0x14]
test dword [esi + 0x98], 0x4000000
je 0x5b87f2
mov ecx, dword [ebx + 0x1f8]
and ecx, 0xfffffffb
mov dword [ebx + 0x1f8], ecx
mov byte [ebx + 5], cl
shr ecx, 8
mov byte [ebx + 4], cl
or ecx, 0xffffffff
mov dword [ebx + 0x50], ecx
mov dword [ebx + 0x54], ecx
mov dword [edi + 0x1b0], eax
mov dword [edi + 0xec], 0x401
mov al, byte [esi + 0x98]
mov ecx, dword [ebx + 0x1bc]
test al, 0x40
mov eax, dword [ebx + 0x210]
jne 0x5b888d
push 2
push eax
push ecx
call fcn.005e4330
mov ecx, dword [ebx + 0x118]
add esp, 0xc
xor eax, eax
test ecx, ecx
jbe 0x5b8857
or ecx, 0xffffffff
lea esp, [esp]
mov edx, dword [ebx + 0x74]
mov dword [edx + eax*8], ecx
mov dword [edx + eax*8 + 4], ecx
mov edx, dword [ebx + 0x118]
inc eax
cmp eax, edx
jb 0x5b8840
jmp 0x5b885a
or ecx, 0xffffffff
mov dl, byte [ebx + 0x15]
xor eax, eax
test dl, dl
jbe 0x5b8876
mov edx, dword [ebx + 0x78]
mov dword [edx + eax*8], ecx
mov dword [edx + eax*8 + 4], ecx
movzx edx, byte [ebx + 0x15]
inc eax
cmp eax, edx
jb 0x5b8863
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0xc8]
mov dword [eax + 0x18], ecx
mov edx, dword [ebx + 0xcc]
mov dword [eax + 0x1c], edx
jmp 0x5b88b5
push 3
push eax
push ecx
call fcn.005e4330
add esp, 0xc
test eax, eax
jne 0x5b8eb9
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
not edx
not eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x38]
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], esi
call fcn.005b46d0
mov edx, dword [esi + 0x338]
mov ecx, dword [esp + 0x18]
xor eax, eax
push eax
push 2
push eax
push eax
push edx
mov dword [esp + 0x414], ecx
mov dword [esp + 0x418], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x80], eax
call fcn.005e1d70
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
mov dword [esi + 0x2c0], eax
mov dword [esi + 0x2c4], edx
mov dword [esp + 0x45c], 0
mov eax, dword [ebx + 0x234]
add esp, 0x14
cmp eax, 1
jne 0x5b893c
mov eax, dword [ebx + 0xfc]
mov ecx, dword [ebx + 0x104]
inc eax
cmp eax, ecx
ja 0x5b894f
mov eax, ecx
jmp 0x5b894f
cmp eax, 2
jne 0x5b8949
mov eax, dword [ebx + 0x104]
jmp 0x5b894f
mov eax, dword [ebx + 0xf8]
test byte [esi + 0x98], 0x40
je 0x5b8963
mov eax, dword [edi + 4]
mov ecx, dword [eax]
mov dword [esp + 0x50], ecx
jmp 0x5b897a
mov edx, dword [esp + 0x3c]
push 0
push eax
mov eax, dword [esp + 0x40]
push edx
push eax
call fcn.006cfc60
inc eax
mov dword [esp + 0x50], eax
mov ecx, dword [esi + 0x2ac]
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x454], ecx
xor ecx, ecx
cmp eax, ecx
lea edx, [esp + 0x38]
mov dword [esp + 0x43c], edx
mov edx, dword [edi + 4]
sete al
mov dword [esp + 0x458], 0x5b38a0
mov dword [esp + 0x464], 0x5b1f60
mov byte [esp + 0x430], al
mov byte [esp + 0x431], 1
mov eax, dword [edx + 4]
test byte [esi + 0x98], 8
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
mov dword [esi + 0x64], ecx
je 0x5b89e3
mov byte [esp + 0x432], 1
lea edx, [esi + 0x864]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x410], 0
mov edx, dword [ebx + 0x118]
test edx, edx
jbe 0x5b8e19
jmp 0x5b8a10
mov esi, dword [esp + 0x34]
mov ecx, 0x28
lea edi, [esp + 0xd0]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x410]
mov edx, dword [ebx + 0x18c]
mov esi, edi
imul esi, esi, 0x3c
add esi, edx
mov dword [esp + 0x434], esi
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x438], eax
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.006cfb80
and eax, dword [esp + 0x20]
and edx, dword [esp + 0x24]
or eax, edx
jne 0x5b8a97
movzx ecx, word [esi + 4]
mov eax, dword [esp + 0x1c]
mov esi, dword [ebp + 8]
mov edx, eax
sub edx, esi
mov esi, dword [ebx + 0x70]
shl ecx, 2
sub edx, 0x864
sar edx, 2
lea esi, [esi + edx*4]
mov edx, ecx
shr ecx, 2
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x5b8dde
mov eax, dword [ebp + 8]
test dword [eax + 0x98], 0x400000
jne 0x5b8ab5
inc edi
push edi
push str.__Fixing_index__d_n
call fcn.006d1d9e
add esp, 8
mov eax, dword [ebx + 0x19c]
mov edx, dword [esp + 0x438]
xor ecx, ecx
mov dword [esp + 0x3f0], eax
mov dword [esp + 0x3f4], ecx
mov dword [esp + 0x3f8], eax
mov dword [esp + 0x3fc], ecx
xor eax, eax
mov ecx, 0x22
lea edi, [esp + 0x2e0]
rep stosd dword es:[edi], eax
mov ecx, dword [ebx + 0x208]
mov dword [esp + 0x414], ecx
mov al, byte [edx + 0x12]
test al, al
je 0x5b8b6a
mov eax, edx
mov esi, 0xff
jmp 0x5b8b10
movzx edi, word [eax + 0x10]
add ecx, edi
mov dword [esp + 0x414], ecx
test byte [eax + 0xe], 1
je 0x5b8b38
cmp word [eax + 0x10], si
sbb edi, edi
and edi, 0xfffffffe
add edi, 3
add ecx, edi
mov dword [esp + 0x414], ecx
test byte [eax + 0xe], 0x28
je 0x5b8b51
cmp word [eax + 0x10], 0x7f
sbb edi, edi
inc edi
lea ecx, [ecx + edi + 2]
mov dword [esp + 0x414], ecx
test byte [eax + 0xe], 0x10
je 0x5b8b5f
inc ecx
mov dword [esp + 0x414], ecx
add edx, 0x18
cmp byte [edx + 0x12], 0
mov eax, edx
jne 0x5b8b10
mov esi, dword [ebp + 0xc]
mov dword [ebx + 0x48], 0
mov edx, dword [esi + 4]
xor ecx, ecx
mov dword [edx + 4], ecx
mov eax, dword [esi + 4]
mov dword [eax], ecx
mov edx, dword [esi + 4]
mov dword [edx + 8], ecx
mov dword [edx + 0xc], ecx
mov eax, dword [esp + 0x434]
mov dl, byte [eax + 6]
test dl, dl
jns 0x5b8beb
mov eax, dword [eax + 0x1c]
mov edx, dword [eax]
mov eax, dword [0x840660]
mov edi, dword [edx + 0x58]
mov edx, dword [esp + 0x38]
imul edi, edi, 0x1f
push ecx
mov ecx, dword [esp + 0x40]
push eax
push ecx
push edx
call fcn.006cfc60
inc eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x414]
lea ecx, [eax + edi - 0xfe]
mov dword [esp + 0x45c], 0x5b6f40
mov dword [esp + 0x460], 0x5b7450
mov dword [esp + 0x414], ecx
jmp 0x5b8c01
mov dword [esp + 0x45c], 0x5b6eb0
mov dword [esp + 0x460], 0x5b7060
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x98]
mov edx, dword [edi + 0x74]
shr eax, 0x1c
not al
push edx
lea ecx, [esp + 0xcc]
and eax, 0xffffff01
push eax
push ecx
call fcn.005d0230
add esp, 0xc
test eax, eax
jne 0x5b8eaf
test dword [edi + 0x98], 0x2000000
mov byte [esp + 0x432], al
mov eax, dword [esi + 4]
mov edx, dword [eax]
mov dword [esp + 0x50], edx
je 0x5b8c88
mov eax, dword [eax]
push 0
push eax
mov eax, dword [edi + 0x4834]
xor ecx, ecx
cmp eax, 2
setne cl
lea edx, [esp + 0x370]
lea eax, [esp + 0x2e8]
dec ecx
and ecx, edx
mov edx, dword [esp + 0x43c]
push ecx
mov ecx, dword [esp + 0x28]
push eax
push ecx
push edx
call fcn.005b43c0
add esp, 0x18
mov ecx, dword [esp + 0x410]
mov eax, 1
xor edx, edx
call fcn.006cfb80
or dword [ebx + 0x90], eax
or dword [ebx + 0x94], edx
mov al, byte [esp + 0x430]
test al, al
je 0x5b8d9b
mov eax, dword [esp + 0x400]
mov ecx, dword [esp + 0x404]
lea edx, [esp + 0x38]
push 1
push edx
mov dword [edi + 0x2c0], eax
mov dword [edi + 0x2c4], ecx
call fcn.005b3fd0
add esp, 8
test eax, eax
jne 0x5b8eb6
mov eax, dword [ebp + 0xc]
add eax, 0x130
push eax
call fcn.005dd750
add esp, 4
test eax, eax
jne 0x5b8eb6
mov ecx, dword [ebp + 8]
test dword [ecx + 0x98], 0x200000
mov esi, dword [ebp + 0xc]
je 0x5b8d24
mov edx, dword [esi + 4]
mov ecx, dword [edx]
mov eax, dword [esp + 0x30]
inc ecx
cmp ecx, eax
jb 0x5b8ef9
mov eax, dword [esp + 0x400]
mov edx, dword [esi + 4]
mov dword [edx + 0x20], eax
mov ecx, dword [esp + 0x404]
mov dword [edx + 0x24], ecx
mov edx, dword [esp + 0x400]
mov dword [ebx + 0x38], edx
mov eax, dword [esp + 0x404]
push 0
mov dword [ebx + 0x3c], eax
call fcn.006d15df
mov dword [ebx + 0x9c], eax
mov ecx, dword [esi + 0xe4]
push 0
push ecx
call fcn.005dc1d0
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x24]
mov edi, dword [ebp + 8]
mov dword [esi + 0xe4], edx
mov esi, dword [ebp + 0xc]
mov dword [ebx + 0x234], eax
mov dword [ebx + 0x19c], ecx
add esp, 0xc
mov byte [esp + 0x430], 0
jmp 0x5b8db2
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x3f8]
mov dword [edx + 0x20], eax
mov ecx, dword [esp + 0x3fc]
mov dword [edx + 0x24], ecx
mov edx, dword [esi + 0xe4]
mov ecx, dword [esp + 0x34]
push 1
push 1
mov dword [edi + 0x338], edx
mov eax, dword [ebx + 0x19c]
push 0
push eax
push 1
push ecx
call fcn.005de000
mov eax, dword [esp + 0x34]
add esp, 0x18
mov edx, dword [esp + 0x434]
movzx ecx, word [edx + 4]
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x410]
inc eax
mov dword [esp + 0x410], eax
cmp eax, dword [ebx + 0x118]
mov dword [esp + 0x1c], edx
jb 0x5b8a10
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esi + 0x98]
test edx, edx
jns 0x5b8e47
push 0x93e3e8
push str.___________r
call fcn.006d079c
push 0x93e3e8
call fcn.006d188b
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
add esp, 0xc
mov edx, dword [ebp + 0x14]
test edx, edx
je 0x5b8f00
add eax, dword [esp + 0x40]
adc ecx, dword [esp + 0x44]
mov edx, dword [edi + 4]
mov edx, dword [edx + 4]
mov dword [esp + 0x2c], ecx
xor ecx, ecx
cmp eax, edx
jne 0x5b8e74
cmp dword [esp + 0x2c], ecx
je 0x5b8f00
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 dword [esp + 0x10], 1
mov byte [esi + 0xa4], 1
mov dword [esi + 0x98], eax
jmp 0x5b8eb9
mov byte [edi + 0xa4], 1
mov esi, dword [ebp + 8]
mov eax, dword [ebx + 0x210]
mov edi, dword [ebx + 0x1bc]
push 1
push eax
push edi
call fcn.005e4330
add esp, 0xc
test eax, eax
je 0x5b904b
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 0x5b9062
mov ecx, dword [esi + 4]
mov dword [ecx], eax
jmp 0x5b8eb6
mov eax, dword [ebp + 0x14]
test ah, 0x10
je 0x5b8f67
mov eax, dword [ebx + 0x1f8]
mov ecx, dword [edi + 4]
and al, 4
neg al
sbb eax, eax
and eax, 7
cdq
add eax, dword [ecx + 0x20]
adc edx, dword [ecx + 0x24]
cmp eax, dword [esp + 0x38]
jne 0x5b8f2d
cmp edx, dword [esp + 0x3c]
je 0x5b8f67
mov ecx, dword [edi]
cmp dword [ecx + 0x138], 0
jne 0x5b8f67
push 0
push 0
push edx
mov edx, dword [edi + 0xe4]
push eax
push edx
call fcn.005e81d0
add esp, 0x14
test eax, eax
je 0x5b8f67
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 0x5b8f79
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0x64]
mov dword [ecx + 0x28], edx
mov eax, dword [edi + 4]
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x18]
mov eax, dword [ebx + 0x210]
push 0
push 0
push ecx
push edx
push eax
call fcn.005e81d0
add esp, 0x14
test eax, eax
je 0x5b8fb1
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 0x5b9012
mov edx, dword [edi + 4]
mov eax, dword [edx]
cmp dword [esp + 0x30], eax
je 0x5b8fe6
lea ecx, [esp + 0x47c]
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 + 0x40]
mov ecx, dword [esp + 0x44]
mov edx, eax
or edx, ecx
je 0x5b9012
lea edx, [esp + 0x47c]
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 edi, dword [edi + 4]
lea eax, [ebx + 0x18]
cmp eax, edi
mov dword [esp + 0x10], 0
je 0x5b8eb9
mov esi, edi
mov ecx, 0xc
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jmp 0x5b8eb6
push str.Not_enough_memory_for_extra_record
push esi
call fcn.004012fd
add esp, 8
jmp 0x5b8eb9
mov al, byte [esi + 0xa1]
test al, al
jne 0x5b9060
push 1
push edi
call fcn.005e3530
add esp, 8
xor eax, eax
or dword [esp + 0x10], eax
mov edi, dword [ebp + 0xc]
lea ecx, [edi + 0x130]
push ecx
call fcn.005dd750
mov eax, dword [esp + 0x14]
add esp, 4
test eax, eax
jne 0x5b90ea
mov eax, dword [esp + 0x14]
test eax, eax
jl 0x5b915a
push 0
push eax
call fcn.005dc1d0
or eax, 0xffffffff
mov dword [edi + 0xe4], eax
mov edx, dword [esi + 0x98]
mov ecx, dword [ebx + 0x1b0]
and edx, 4
shl edx, 6
push edx
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 0x13c]
push eax
push str..TMD
push str..MYD
push ecx
call fcn.005b22e0
add esp, 0x1c
test eax, eax
jne 0x5b90e2
push 0xffffffffffffffff
push ebx
push edi
call fcn.005ad680
add esp, 0xc
test eax, eax
je 0x5b915a
mov dword [esp + 0x10], 1
mov eax, dword [esi + 0x84]
test eax, eax
jne 0x5b910a
call fcn.005e0030
mov edx, dword [eax]
push edx
push str._d_when_fixing_table
push esi
call fcn.004012fd
add esp, 0xc
mov eax, dword [esp + 0x14]
test eax, eax
jl 0x5b9148
push 0
push eax
call fcn.005dc1d0
mov ecx, dword [ebx + 0x13c]
push ecx
lea edx, [esi + 0xa6]
push edx
call fcn.005e8350
mov eax, dword [esp + 0x24]
mov ecx, dword [edi + 0xe4]
add esp, 0x10
cmp ecx, eax
jne 0x5b9148
mov dword [edi + 0xe4], 0xffffffff
mov eax, dword [edi]
or byte [eax + 0xb4], 6
or dword [edi + 0xec], 1
jmp 0x5b9179
mov ecx, dword [esp + 0x20]
cmp ecx, dword [ebx + 0x90]
jne 0x5b9179
mov edx, dword [esp + 0x24]
cmp edx, dword [ebx + 0x94]
jne 0x5b9179
and byte [ebx + 0xb4], 0xef
or byte [ebx + 0xb4], 0x20
mov eax, dword [edi]
test byte [eax + 0x1f8], 1
mov eax, dword [esp + 0x444]
je 0x5b9199
test eax, eax
je 0x5b9199
add eax, 0xffffffe8
push eax
call fcn.005d8be0
mov ecx, dword [esp + 0x454]
push ecx
call fcn.005d8be0
mov edx, dword [esp + 0x78]
push edx
call fcn.005d8be0
mov eax, dword [esp + 0x84]
push eax
call fcn.005d8be0
mov ecx, dword [esp + 0x7c]
push ecx
call fcn.005d8be0
lea edx, [esi + 0x2b8]
push edx
call fcn.005dd750
mov ecx, dword [edi + 0xe8]
mov eax, dword [esp + 0x28]
and ecx, 0xffffffed
add esp, 0x18
test eax, eax
mov dword [edi + 0xe8], ecx
jne 0x5b920d
test dword [esi + 0x98], 0x4000000
je 0x5b920d
and byte [ebx + 4], 0xfb
mov dword [ebx + 0x19c], 0
mov ecx, dword [esp + 0x494]
mov eax, dword [esp + 0x10]
call fcn.006cedd0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret