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

Disassembly:
sub esp, 0xb8
push ebx
xor ebx, ebx
push ebp
mov ebp, dword [esp + 0xc4]
mov eax, dword [ebp + 0x34]
push edi
mov edi, dword [esp + 0xd4]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x28], eax
cmp dword [esp + 0xcc], ebx
jne 0x5a06ae
pop edi
pop ebp
lea eax, [ebx + 7]
pop ebx
add esp, 0xb8
ret
movzx eax, byte [ebp + 1]
push esi
movzx esi, word [ebp + 0x10]
lea ecx, [eax + esi]
cmp ecx, 2
mov dword [esp + 0x10], ecx
jge 0x5a06c7
xor edx, edx
jmp 0x5a06e5
cmp edx, ebx
jne 0x5a06cf
xor edx, edx
jmp 0x5a06da
cmp edx, ecx
jne 0x5a06d9
lea edx, [ecx + edi - 2]
jmp 0x5a06da
dec edx
mov ecx, 2
sub ecx, edi
mov dword [esp + 0x10], ecx
lea edi, [ecx + 1]
mov dword [esp + 0x3c], edi
mov edi, edx
sub edi, eax
lea eax, [edi + ecx]
mov dword [esp + 0x18], edx
cmp eax, esi
jne 0x5a0708
movzx eax, byte [ebp + 5]
mov esi, dword [ebp + 0x38]
lea eax, [eax + esi + 8]
jmp 0x5a0723
mov esi, dword [ebp + 0x40]
lea esi, [esi + eax*2]
movzx eax, byte [esi + 1]
movzx esi, byte [esi]
shl esi, 8
or eax, esi
movzx esi, word [ebp + 0x12]
and eax, esi
add eax, dword [ebp + 0x38]
movzx edi, byte [eax]
movzx esi, byte [eax + 1]
shl edi, 8
or edi, esi
movzx esi, byte [eax + 2]
shl edi, 8
or edi, esi
mov dword [esp + 0x50], eax
movzx eax, byte [eax + 3]
shl edi, 8
or edi, eax
add edx, ecx
mov dword [esp + 0x54], edi
mov dword [esp + 0x38], edx
nop
mov ecx, dword [esp + 0x2c]
cmp edi, dword [ecx + 0x2c]
jbe 0x5a0780
push 0x65eed4
push 0xcb21
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.00573920
mov ebx, dword [esp + 0x20]
add esp, 0x10
mov edi, 0xb
jmp 0x5a080f
mov ecx, dword [ecx]
lea edx, [esp + 0x48]
push edx
xor eax, eax
mov ebx, edi
call fcn.005866a0
mov ebx, dword [esp + 0x14]
add esp, 4
test eax, eax
je 0x5a079f
mov edi, eax
jmp 0x5a080f
mov eax, dword [esp + 0x48]
mov esi, dword [eax + 8]
mov edx, dword [eax + 4]
cmp edi, 1
setne cl
dec cl
mov dword [esi + 0x44], eax
mov eax, dword [esp + 0x2c]
and cl, 0x64
mov dword [esi + 0x38], edx
mov dword [esi + 0x34], eax
mov dword [esi + 0x48], edi
mov byte [esi + 5], cl
mov dword [esp + ebx*4 + 0x6c], esi
call fcn.0057e310
mov edi, eax
test edi, edi
je 0x5a080f
mov eax, dword [esi + 0x44]
test eax, eax
je 0x5a080f
test byte [eax + 0x18], 0x40
mov esi, dword [eax + 0x10]
je 0x5a07ef
mov ecx, eax
call fcn.00561170
jmp 0x5a07f4
call fcn.0055f8e0
cmp dword [esi + 0x78], 0
jne 0x5a080f
mov edx, dword [esi + 0xcc]
cmp dword [edx + 0xc], 0
jne 0x5a080f
push esi
call fcn.00599100
add esp, 4
mov dword [esp + 0x14], edi
test edi, edi
jne 0x5a097c
mov eax, dword [esp + ebx*4 + 0x6c]
movzx edx, byte [eax + 1]
movzx ecx, word [eax + 0x10]
add edx, dword [esp + 0x4c]
dec dword [esp + 0x38]
mov eax, ebx
dec ebx
lea esi, [edx + ecx + 1]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x10], ebx
test eax, eax
je 0x5a0998
movzx ecx, word [ebp + 0x14]
cmp dword [esp + 0x38], ecx
jne 0x5a089d
cmp byte [ebp + 1], 0
je 0x5a089d
mov eax, dword [ebp + 0x20]
movzx edi, byte [eax]
movzx edx, byte [eax + 1]
movzx ecx, byte [eax + 2]
shl edi, 8
or edi, edx
movzx edx, byte [eax + 3]
shl edi, 8
or edi, ecx
shl edi, 8
mov dword [esp + ebx*4 + 0x94], eax
or edi, edx
push eax
mov eax, ebp
mov dword [esp + 0x58], edi
call fcn.00562080
movzx eax, ax
add esp, 4
mov dword [esp + ebx*4 + 0x58], eax
mov byte [ebp + 1], 0
jmp 0x5a0750
movzx ecx, byte [ebp + 1]
mov edx, dword [esp + 0x18]
mov eax, dword [ebp + 0x40]
sub edx, ecx
add edx, ebx
movzx ecx, byte [eax + edx*2 + 1]
lea eax, [eax + edx*2]
movzx edx, byte [eax]
movzx eax, word [ebp + 0x12]
shl edx, 8
or ecx, edx
mov edx, dword [ebp + 0x38]
and ecx, eax
movzx edi, byte [ecx + edx]
lea eax, [ecx + edx]
movzx edx, byte [eax + 2]
lea ecx, [esp + ebx*4 + 0x94]
mov dword [ecx], eax
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + 1]
shl edi, 8
or edi, ecx
movzx ecx, byte [eax + 3]
shl edi, 8
or edi, edx
shl edi, 8
or edi, ecx
push eax
mov eax, ebp
mov dword [esp + 0x58], edi
call fcn.00562080
mov ecx, dword [esp + 0x30]
movzx eax, ax
add esp, 4
test byte [ecx + 0x16], 4
mov dword [esp + 0x24], eax
mov dword [esp + ebx*4 + 0x58], eax
je 0x5a0959
mov edx, dword [esp + 0x20]
mov esi, dword [edx]
mov edx, dword [esp + 0x24]
mov eax, esi
sub eax, dword [ebp + 0x38]
add edx, eax
cmp edx, dword [ecx + 0x24]
jg 0x5a132a
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0xd0]
push ecx
add eax, ebx
push esi
push eax
call fcn.005e13c0
sub esi, dword [ebp + 0x38]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
add esp, 0xc
add esi, ebx
mov dword [edx], esi
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x14]
push ecx
push eax
movzx eax, byte [ebp + 1]
sub edx, eax
add edx, dword [esp + 0x18]
mov ebx, ebp
call fcn.0057e820
add esp, 8
jmp 0x5a0750
lea ecx, [ebx*4 + 4]
push ecx
lea edx, [esp + 0x70]
push 0
push edx
call fcn.005dfd60
add esp, 0xc
jmp 0x5a1368
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x20]
mov edi, dword [esp + 0x3c]
lea ecx, [eax + 0x50]
mov dword [esp + 0x28], ecx
imul ecx, edi
add esi, 3
and esi, 0xfffffffc
lea edx, [esi + esi*2]
add ecx, eax
lea eax, [ecx + edx*2]
call fcn.00569480
mov dword [esp + 0x34], eax
test eax, eax
jne 0x5a09d5
mov dword [esp + 0x14], 7
jmp 0x5a1368
lea eax, [eax + esi*4]
mov dword [esp + 0x20], eax
lea eax, [eax + esi*2]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x6c]
movzx cx, byte [eax + 3]
movzx eax, byte [eax + 4]
add cx, cx
add cx, cx
movzx edx, cx
mov dword [esp + 0x38], edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], 0
test edi, edi
jle 0x5a0bc3
mov dword [esp + 0x4c], 0
lea esp, [esp]
mov edx, dword [esp + 0x2c]
mov ecx, dword [edx + 0x20]
add ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
lea ebx, [ecx + eax]
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x9c], ebx
mov eax, dword [esp + eax*4 + 0x6c]
mov esi, eax
mov ecx, 0x13
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebx + 0x4c]
mov dword [ebx + 0x38], ecx
mov edx, dword [edx + 0x20]
mov eax, dword [eax + 0x38]
push edx
push eax
push ecx
call fcn.005e13c0
mov al, byte [ebx + 1]
movzx ebp, word [ebx + 0x10]
movzx ecx, al
add esp, 0xc
add ebp, ecx
test al, al
jbe 0x5a0ab3
xor esi, esi
test ebp, ebp
jle 0x5a0b1b
lea ecx, [ecx]
mov eax, esi
mov edi, ebx
call fcn.00561ee0
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
mov dword [edx + edi*4], eax
push eax
mov eax, ebx
call fcn.00562080
mov ecx, dword [esp + 0x24]
mov word [ecx + edi*2], ax
inc edi
inc esi
add esp, 4
cmp esi, ebp
mov dword [esp + 0x30], edi
jl 0x5a0a80
jmp 0x5a0b1b
mov edi, dword [ebx + 0x38]
movzx eax, word [ebx + 0x12]
movzx ecx, word [ebx + 0xc]
test ebp, ebp
jle 0x5a0b1b
movzx edx, ax
movzx esi, cx
mov dword [esp + 0x7c], ebp
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x78], edx
add esi, edi
jmp 0x5a0ae0
movzx eax, byte [esi]
movzx ecx, byte [esi + 1]
mov edx, dword [esp + 0x34]
shl eax, 8
or eax, ecx
and eax, dword [esp + 0x78]
add eax, edi
mov dword [edx + ebp*4], eax
push eax
mov eax, ebx
call fcn.00562080
mov ecx, dword [esp + 0x24]
mov word [ecx + ebp*2], ax
add esp, 4
inc ebp
add esi, 2
sub dword [esp + 0x7c], 1
jne 0x5a0ae0
mov dword [esp + 0x30], ebp
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x10]
dec eax
cmp ecx, eax
jge 0x5a0bac
cmp dword [esp + 0x24], 0
jne 0x5a0bac
movzx eax, word [esp + ecx*4 + 0x58]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x48]
mov word [edi + esi*2], ax
movzx eax, ax
add ebp, edx
add edx, eax
mov dword [esp + 0x40], edx
mov edx, dword [esp + ecx*4 + 0x94]
push eax
push edx
push ebp
call fcn.005e13c0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
movzx edx, ax
add edx, ebp
mov dword [ecx + esi*4], edx
sub word [edi + esi*2], ax
movzx eax, word [edi + esi*2]
add esp, 0xc
cmp byte [ebx + 3], 0
jne 0x5a0b94
mov eax, dword [ebx + 0x38]
mov ecx, dword [ecx + esi*4]
mov edx, dword [eax + 8]
mov dword [ecx], edx
jmp 0x5a0ba3
cmp ax, 4
jae 0x5a0ba3
mov eax, 4
mov word [edi + esi*2], ax
mov ecx, dword [esp + 0x10]
inc esi
mov dword [esp + 0x30], esi
mov edx, dword [esp + 0x28]
add dword [esp + 0x4c], edx
inc ecx
cmp ecx, dword [esp + 0x3c]
mov dword [esp + 0x10], ecx
jl 0x5a0a20
movzx eax, word [esp + 0x38]
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x24]
mov ebp, dword [esp + 0x30]
mov edi, dword [esp + 0x20]
lea ebx, [edx + eax - 0xc]
xor ecx, ecx
xor esi, esi
xor eax, eax
test ebp, ebp
jle 0x5a0c17
movzx edx, word [edi + ecx*2]
lea eax, [eax + edx + 2]
cmp eax, ebx
jle 0x5a0c12
sub eax, edx
cmp dword [esp + 0x24], 0
mov dword [esp + esi*4 + 0x58], eax
mov dword [esp + esi*4 + 0x80], ecx
je 0x5a0c06
dec ecx
inc esi
xor eax, eax
cmp esi, 4
jg 0x5a0c8b
inc ecx
cmp ecx, ebp
jl 0x5a0be5
inc esi
mov dword [esp + esi*4 + 0x54], eax
mov dword [esp + esi*4 + 0x7c], ebp
lea ebx, [esi - 1]
mov dword [esp + 0x28], esi
mov dword [esp + 0x10], ebx
test ebx, ebx
jle 0x5a0cc6
mov edx, dword [esp + ebx*4 + 0x58]
mov esi, dword [esp + ebx*4 + 0x54]
mov eax, dword [esp + ebx*4 + 0x7c]
dec eax
mov ecx, eax
sub ecx, dword [esp + 0x24]
inc ecx
test edx, edx
je 0x5a0c70
cmp dword [esp + 0xd8], 0
jne 0x5a0cb1
movzx ebx, word [edi + eax*2]
mov ebp, esi
sub ebp, ebx
movzx ebx, word [edi + ecx*2]
lea ebx, [ebx + edx + 2]
sub ebp, 2
cmp ebx, ebp
mov ebx, dword [esp + 0x10]
jg 0x5a0cb1
movzx ecx, word [edi + ecx*2]
movzx eax, word [edi + eax*2]
lea edx, [edx + ecx + 2]
mov ecx, 0xfffffffe
sub ecx, eax
add esi, ecx
dec dword [esp + ebx*4 + 0x7c]
jmp 0x5a0c3b
push 0x65eed4
push 0xdda4
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.00573920
add esp, 0x10
mov dword [esp + 0x14], 0xb
jmp 0x5a1368
mov dword [esp + ebx*4 + 0x58], edx
mov dword [esp + ebx*4 + 0x54], esi
dec ebx
mov dword [esp + 0x10], ebx
test ebx, ebx
jg 0x5a0c33
mov eax, dword [esp + 0x6c]
cmp dword [eax + 0x48], 1
ja 0x5a0cdc
push 0x65eed4
push 0xdde2
jmp 0x5a0c95
mov edx, dword [eax + 0x38]
movzx eax, byte [edx]
xor edi, edi
cmp dword [esp + 0x28], edi
mov dword [esp + 0x48], eax
jle 0x5a0da6
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0xcc]
mov esi, dword [esp + 0x1c]
cmp edi, dword [esp + 0x3c]
jge 0x5a0d30
mov eax, dword [esp + edi*4 + 0x6c]
mov ecx, dword [eax + 0x44]
push ecx
mov dword [esp + edi*4 + 0x5c], eax
mov dword [esp + 0x44], eax
mov dword [esp + edi*4 + 0x70], 0
call fcn.005869c0
add esp, 4
inc esi
mov dword [esp + 0x14], eax
test eax, eax
jmp 0x5a0d91
cmp dword [esp + 0xd8], 0
mov eax, 1
jne 0x5a0d43
mov eax, dword [esp + 0x54]
push 0
push eax
lea edx, [esp + 0x5c]
push edx
lea eax, [esp + 0x4c]
push eax
push ebx
call fcn.0059b110
add esp, 0x14
mov dword [esp + 0x14], eax
test eax, eax
jne 0x5a1364
mov eax, dword [esp + 0x40]
inc esi
cmp byte [ebx + 0x11], 0
mov dword [esp + edi*4 + 0x58], eax
je 0x5a0d97
mov edx, dword [ebp + 0x48]
mov eax, dword [eax + 0x48]
lea ecx, [esp + 0x14]
push ecx
push edx
push 5
mov ecx, ebx
call fcn.0059a2a0
add esp, 0xc
cmp dword [esp + 0x14], 0
jne 0x5a1364
inc edi
cmp edi, dword [esp + 0x28]
jl 0x5a0d01
mov dword [esp + 0x1c], esi
cmp edi, dword [esp + 0x3c]
jge 0x5a0eb2
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + edi*4 + 0x6c]
test ebx, ebx
jne 0x5a1368
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x34]
push eax
push ecx
mov eax, esi
call fcn.0059b930
mov ebx, eax
add esp, 8
mov dword [esp + 0x14], ebx
test ebx, ebx
jne 0x5a1368
test esi, esi
je 0x5a0e9f
mov eax, dword [esi + 0x44]
test eax, eax
je 0x5a0e9f
test byte [eax + 0x18], 0x40
mov esi, dword [eax + 0x10]
je 0x5a0e3d
dec dword [esi + 0x78]
mov edx, dword [esi + 0x88]
mov dword [eax + 0xc], edx
mov ebx, dword [esi + 0x3c]
mov dword [esi + 0x88], eax
mov ecx, dword [eax + 4]
mov ebp, dword [ebx]
push ecx
mov ecx, dword [eax + 0x14]
mov eax, dword [esi + 0x98]
cdq
push edx
push eax
dec ecx
push 0
push ecx
call fcn.005e5510
push edx
mov edx, dword [ebp + 0x48]
push eax
push ebx
call edx
mov ebx, dword [esp + 0x24]
add esp, 0x10
jmp 0x5a0e42
call fcn.0055f8e0
cmp dword [esi + 0x78], 0
jne 0x5a0e9f
mov eax, dword [esi + 0xcc]
cmp dword [eax + 0xc], 0
jne 0x5a0e9f
mov al, byte [esi + 0xf]
cmp al, 6
je 0x5a0e96
test al, al
je 0x5a0e96
cmp al, 2
jb 0x5a0e82
mov eax, dword [0x761204]
test eax, eax
je 0x5a0e6e
call eax
mov eax, esi
call fcn.00597590
mov eax, dword [0x761208]
test eax, eax
je 0x5a0e96
call eax
jmp 0x5a0e96
cmp byte [esi + 4], 0
jne 0x5a0e96
push 0
push 0
mov eax, esi
call fcn.0056ae80
add esp, 8
push esi
call fcn.00575320
add esp, 4
mov dword [esp + edi*4 + 0x6c], 0
inc edi
cmp edi, dword [esp + 0x3c]
jl 0x5a0db4
mov eax, dword [esp + 0x28]
dec eax
xor ecx, ecx
test eax, eax
jle 0x5a0f16
lea ecx, [ecx]
mov eax, dword [esp + ecx*4 + 0x58]
mov esi, dword [eax + 0x48]
lea ebp, [esp + ecx*4 + 0x58]
lea ebx, [ecx + 1]
cmp ebx, dword [esp + 0x28]
mov dword [esp + 0x78], eax
mov edi, ecx
mov eax, ebx
jge 0x5a0f0b
lea esp, [esp]
mov edx, dword [esp + eax*4 + 0x58]
mov edx, dword [edx + 0x48]
cmp edx, esi
jae 0x5a0eef
mov edi, eax
mov esi, edx
inc eax
cmp eax, dword [esp + 0x28]
jl 0x5a0ee0
cmp edi, ecx
jle 0x5a0f0b
mov ecx, dword [esp + edi*4 + 0x58]
mov edx, dword [esp + 0x78]
lea eax, [esp + edi*4 + 0x58]
mov dword [ebp], ecx
mov dword [eax], edx
mov eax, dword [esp + 0x28]
mov ecx, ebx
dec eax
cmp ecx, eax
jl 0x5a0ec0
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + esi*4 + 0x54]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0x50]
mov edx, eax
shr edx, 0x18
mov byte [ecx], dl
mov edx, eax
shr edx, 0x10
mov byte [ecx + 1], dl
mov edx, eax
shr edx, 8
xor ebx, ebx
xor edi, edi
mov byte [ecx + 2], dl
mov byte [ecx + 3], al
mov dword [esp + 0x10], ebx
test esi, esi
jle 0x5a106d
nop
mov eax, dword [esp + 0x48]
mov esi, dword [esp + ebx*4 + 0x58]
push eax
call fcn.0057e510
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
mov ebp, dword [esp + ebx*4 + 0x84]
lea edx, [ecx + edi*2]
push edx
lea ecx, [eax + edi*4]
push ecx
mov edx, ebp
sub edx, edi
push edx
push esi
call fcn.005628a0
mov edi, ebp
add esp, 0x14
cmp edi, dword [esp + 0x30]
jge 0x5a105a
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x34]
movzx ecx, word [ecx + edi*2]
mov ebp, dword [eax + edi*4]
movzx edx, word [esp + 0x38]
mov ebx, dword [esp + 0xd0]
movzx eax, cx
add eax, edx
mov edx, dword [esp + 0x44]
add ebx, edx
cmp byte [esi + 3], 0
jne 0x5a0fc6
mov ecx, dword [esi + 0x38]
mov edx, dword [ebp]
mov dword [ecx + 8], edx
jmp 0x5a1023
cmp dword [esp + 0x24], 0
je 0x5a1007
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + edi*4 - 4]
dec edi
push esi
lea eax, [esp + 0xac]
call fcn.00561f30
mov edx, dword [esp + 0xb0]
mov eax, dword [esp + 0xac]
push edx
push eax
lea ecx, [ebx + 4]
mov ebp, ebx
call fcn.0055e3d0
add esp, 0xc
add eax, 4
xor ebx, ebx
jmp 0x5a1023
sub ebp, 4
cmp cx, 4
jne 0x5a1023
mov eax, dword [esp + 0xcc]
push ebp
call fcn.00562080
add esp, 4
movzx eax, ax
mov edx, dword [esi + 0x48]
add dword [esp + 0x44], eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
push ebx
push ebp
push ecx
mov ecx, dword [esp + 0xe0]
call fcn.0059c230
add esp, 0x14
cmp dword [esp + 0x14], 0
jne 0x5a1368
mov ebx, dword [esp + 0x10]
inc edi
inc dword [esp + 0x18]
inc ebx
cmp ebx, dword [esp + 0x1c]
mov dword [esp + 0x10], ebx
jl 0x5a0f50
mov esi, dword [esp + 0x1c]
test byte [esp + 0x48], 8
mov eax, dword [esp + 0xcc]
jne 0x5a1096
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + edx*4 + 0x98]
mov edx, dword [ecx + 0x38]
mov esi, dword [esp + esi*4 + 0x54]
mov ecx, dword [esi + 0x38]
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
cmp dword [esp + 0xd4], 0
mov ebx, dword [esp + 0x58]
je 0x5a10e9
cmp word [eax + 0x10], 0
jne 0x5a10e9
movzx cx, byte [eax + 5]
cmp cx, word [ebx + 0xe]
ja 0x5a10e9
lea edx, [esp + 0x14]
push edx
call fcn.0059c590
add esp, 4
cmp dword [esp + 0x14], 0
jne 0x5a1368
mov eax, dword [ebx + 0x48]
mov ecx, dword [ebx + 0x34]
push eax
push ecx
mov eax, ebx
call fcn.0059b930
add esp, 8
mov dword [esp + 0x14], eax
jmp 0x5a1368
mov edx, dword [esp + 0x2c]
cmp byte [edx + 0x11], 0
je 0x5a1368
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x9c]
movzx eax, byte [ebx + 1]
movzx esi, word [ebx + 0x10]
xor edi, edi
add esi, eax
mov dword [esp + 0x44], eax
cmp eax, edi
je 0x5a111c
movzx ebp, word [ebx + 0x14]
jmp 0x5a111f
or ebp, 0xffffffff
cmp dword [esp + 0x30], edi
mov dword [esp + 0x10], ebp
mov dword [esp + 0x50], edi
mov dword [esp + 0x28], edi
jle 0x5a12c7
mov dword [esp + 0x40], edi
lea esp, [esp]
xor ecx, ecx
cmp edi, esi
jne 0x5a118b
cmp dword [esp + 0x24], ecx
sete cl
lea ecx, [ecx]
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + eax*4 + 0xa0]
movzx edx, word [ebx + 0x10]
inc eax
mov dword [esp + 0x50], eax
mov al, byte [ebx + 1]
movzx esi, al
add edx, ecx
add esi, edx
add esi, edi
test al, al
je 0x5a1183
movzx ebp, word [ebx + 0x14]
movzx eax, al
add ebp, ecx
mov dword [esp + 0x44], eax
add ebp, edi
cmp edi, esi
je 0x5a1150
mov dword [esp + 0x10], ebp
cmp edi, ebp
jne 0x5a11a6
mov eax, dword [esp + 0x44]
dec eax
mov ecx, 1
mov dword [esp + 0x44], eax
test eax, eax
jle 0x5a11a6
inc ebp
mov dword [esp + 0x10], ebp
mov edx, dword [esp + 0x40]
cmp edi, dword [esp + edx + 0x80]
jne 0x5a11d7
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
add eax, eax
add eax, eax
cmp dword [esp + 0x24], 0
mov dword [esp + 0x40], eax
mov eax, dword [esp + eax + 0x58]
mov dword [esp + 0x18], eax
je 0x5a12ba
test ecx, ecx
jne 0x5a11eb
mov ecx, dword [ebx + 0x48]
mov edx, dword [esp + 0x18]
cmp ecx, dword [edx + 0x48]
je 0x5a12ba
cmp word [esp + 0x38], 0
jne 0x5a1233
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + edi*4]
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x14]
push edx
mov edx, dword [eax + 0x48]
movzx eax, byte [ecx]
push edx
movzx edx, byte [ecx + 1]
shl eax, 8
or eax, edx
movzx edx, byte [ecx + 2]
movzx ecx, byte [ecx + 3]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
mov ecx, dword [esp + 0x34]
push 5
call fcn.0059a2a0
add esp, 0xc
mov edx, dword [esp + 0x20]
mov ax, word [edx + edi*2]
mov ecx, dword [esp + 0x18]
cmp ax, word [ecx + 0xa]
jbe 0x5a12ba
cmp dword [esp + 0x14], 0
mov edx, dword [esp + 0x34]
mov ebp, dword [edx + edi*4]
jne 0x5a12b6
mov eax, ecx
push eax
lea eax, [esp + 0xac]
mov ecx, ebp
call fcn.00561f30
mov ax, word [esp + 0xc4]
add esp, 4
test ax, ax
je 0x5a12b6
movzx ecx, ax
lea edx, [esp + 0x14]
push edx
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x48]
push eax
movzx eax, byte [ecx + ebp]
add ecx, ebp
movzx ebp, byte [ecx + 1]
shl eax, 8
or eax, ebp
movzx ebp, byte [ecx + 2]
movzx ecx, byte [ecx + 3]
shl eax, 8
or eax, ebp
shl eax, 8
or eax, ecx
mov ecx, dword [edx + 0x34]
push 3
call fcn.0059a2a0
add esp, 0xc
mov ebp, dword [esp + 0x10]
inc edi
cmp edi, dword [esp + 0x30]
jl 0x5a1140
xor edi, edi
cmp word [esp + 0x38], di
jne 0x5a1368
xor esi, esi
cmp dword [esp + 0x1c], esi
jle 0x5a1368
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + esi*4 + 0x58]
mov ecx, dword [eax + 0x38]
mov eax, dword [eax + 0x48]
add ecx, 8
lea edx, [esp + 0x14]
push edx
movzx edx, byte [ecx]
push eax
movzx eax, byte [ecx + 1]
shl edx, 8
or eax, edx
movzx edx, byte [ecx + 2]
movzx ecx, byte [ecx + 3]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
push 5
mov ecx, ebx
call fcn.0059a2a0
inc esi
add esp, 0xc
cmp esi, edi
jl 0x5a12e6
jmp 0x5a1368
push 0x65eed4
push 0xdd19
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.00573920
lea edx, [ebx*4 + 4]
push edx
lea eax, [esp + 0x80]
push 0
push eax
mov dword [esp + 0x30], 0xb
call fcn.005dfd60
add esp, 0x1c
jmp 0x5a1368
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x34]
call fcn.00569590
xor ebx, ebx
cmp dword [esp + 0x3c], ebx
jle 0x5a144a
lea ecx, [ecx]
mov eax, dword [esp + ebx*4 + 0x6c]
test eax, eax
je 0x5a143f
mov eax, dword [eax + 0x44]
test eax, eax
je 0x5a143f
test byte [eax + 0x18], 0x40
mov esi, dword [eax + 0x10]
je 0x5a13dd
dec dword [esi + 0x78]
mov ecx, dword [esi + 0x88]
mov dword [eax + 0xc], ecx
mov edi, dword [esi + 0x3c]
mov dword [esi + 0x88], eax
mov edx, dword [eax + 4]
mov ecx, dword [eax + 0x14]
mov eax, dword [esi + 0x98]
mov ebp, dword [edi]
push edx
cdq
push edx
push eax
dec ecx
push 0
push ecx
call fcn.005e5510
push edx
mov edx, dword [ebp + 0x48]
push eax
push edi
call edx
add esp, 0x10
jmp 0x5a13e2
call fcn.0055f8e0
cmp dword [esi + 0x78], 0
jne 0x5a143f
mov eax, dword [esi + 0xcc]
cmp dword [eax + 0xc], 0
jne 0x5a143f
mov al, byte [esi + 0xf]
cmp al, 6
je 0x5a1436
test al, al
je 0x5a1436
cmp al, 2
jb 0x5a1422
mov eax, dword [0x761204]
test eax, eax
je 0x5a140e
call eax
mov eax, esi
call fcn.00597590
mov eax, dword [0x761208]
test eax, eax
je 0x5a1436
call eax
jmp 0x5a1436
cmp byte [esi + 4], 0
jne 0x5a1436
push 0
push 0
mov eax, esi
call fcn.0056ae80
add esp, 8
push esi
call fcn.00575320
add esp, 4
inc ebx
cmp ebx, dword [esp + 0x3c]
jl 0x5a1380
xor ebx, ebx
cmp dword [esp + 0x1c], ebx
jle 0x5a152a
jmp 0x5a1460
mov eax, dword [esp + ebx*4 + 0x58]
test eax, eax
je 0x5a151f
mov eax, dword [eax + 0x44]
test eax, eax
je 0x5a151f
test byte [eax + 0x18], 0x40
mov esi, dword [eax + 0x10]
je 0x5a14bd
dec dword [esi + 0x78]
mov ecx, dword [esi + 0x88]
mov dword [eax + 0xc], ecx
mov edi, dword [esi + 0x3c]
mov dword [esi + 0x88], eax
mov edx, dword [eax + 4]
mov ecx, dword [eax + 0x14]
mov eax, dword [esi + 0x98]
mov ebp, dword [edi]
push edx
cdq
push edx
push eax
dec ecx
push 0
push ecx
call fcn.005e5510
push edx
mov edx, dword [ebp + 0x48]
push eax
push edi
call edx
add esp, 0x10
jmp 0x5a14c2
call fcn.0055f8e0
cmp dword [esi + 0x78], 0
jne 0x5a151f
mov eax, dword [esi + 0xcc]
cmp dword [eax + 0xc], 0
jne 0x5a151f
mov al, byte [esi + 0xf]
cmp al, 6
je 0x5a1516
test al, al
je 0x5a1516
cmp al, 2
jb 0x5a1502
mov eax, dword [0x761204]
test eax, eax
je 0x5a14ee
call eax
mov eax, esi
call fcn.00597590
mov eax, dword [0x761208]
test eax, eax
je 0x5a1516
call eax
jmp 0x5a1516
cmp byte [esi + 4], 0
jne 0x5a1516
push 0
push 0
mov eax, esi
call fcn.0056ae80
add esp, 8
push esi
call fcn.00575320
add esp, 4
inc ebx
cmp ebx, dword [esp + 0x1c]
jl 0x5a1460
mov eax, dword [esp + 0x14]
pop esi
pop edi
pop ebp
pop ebx
add esp, 0xb8
ret