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

Disassembly:
sub esp, 0x28
push ebx
push ebp
push esi
mov esi, dword [esp + 0x38]
mov ebx, dword [esi + 0xc]
mov ecx, dword [ebx + 0x38]
movzx eax, byte [ecx + 0x25]
mov edx, dword [esi + 0x2c]
push edi
movzx edi, byte [ecx + 0x24]
add ecx, 0x24
shl edi, 8
or edi, eax
movzx eax, byte [ecx + 2]
movzx ecx, byte [ecx + 3]
shl edi, 8
or edi, eax
shl edi, 8
or edi, ecx
xor ebp, ebp
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x28], edx
cmp edi, edx
jb 0x59b178
push 0x65eed4
push 0xd847
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.00573920
add esp, 0x10
pop edi
pop esi
lea eax, [ebp + 0xb]
pop ebp
pop ebx
add esp, 0x28
ret
test edi, edi
jbe 0x59b751
mov al, byte [esp + 0x4c]
mov byte [esp + 0x12], 0
cmp al, 1
jne 0x59b1b4
mov eax, dword [esp + 0x48]
cmp eax, edx
ja 0x59b1bd
push 0
lea edx, [esp + 0x17]
push edx
push esi
call fcn.0059a3c0
add esp, 0xc
test eax, eax
jne 0x59b920
cmp byte [esp + 0x13], 2
jmp 0x59b1b6
cmp al, 2
jne 0x59b1bd
mov byte [esp + 0x12], 1
mov eax, dword [ebx + 0x44]
push eax
call fcn.005869c0
add esp, 4
test eax, eax
jne 0x59b920
mov eax, dword [ebx + 0x38]
lea ecx, [edi - 1]
add eax, 0x24
mov edx, ecx
shr edx, 0x18
mov byte [eax], dl
mov edx, ecx
shr edx, 0x10
mov byte [eax + 1], dl
mov edx, ecx
shr edx, 8
mov byte [eax + 2], dl
mov byte [eax + 3], cl
mov dword [esp + 0x18], ebp
test ebp, ebp
je 0x59b20b
mov eax, dword [ebp + 0x38]
movzx edi, byte [eax]
movzx ecx, byte [eax + 1]
shl edi, 8
jmp 0x59b21c
mov eax, dword [ebx + 0x38]
movzx ecx, byte [eax + 0x20]
movzx edi, byte [eax + 0x21]
add eax, 0x20
shl ecx, 8
movzx edx, byte [eax + 2]
movzx eax, byte [eax + 3]
or edi, ecx
shl edi, 8
or edi, edx
shl edi, 8
or edi, eax
cmp edi, dword [esp + 0x28]
ja 0x59b6ac
lea ecx, [esp + 0x30]
push ecx
mov ecx, dword [esi]
xor eax, eax
mov ebx, edi
call fcn.005866a0
add esp, 4
test eax, eax
jne 0x59b6d2
mov eax, dword [esp + 0x30]
mov ebx, dword [eax + 8]
mov edx, dword [eax + 4]
cmp edi, 1
setne cl
mov dword [ebx + 0x44], eax
mov eax, dword [esp + 0x3c]
dec cl
mov esi, edx
mov dword [ebx + 0x38], edx
and cl, 0x64
mov dword [ebx + 0x34], eax
mov dword [ebx + 0x48], edi
mov byte [ebx + 5], cl
movzx edx, byte [esi + 4]
movzx ebp, byte [esi + 5]
movzx ecx, byte [esi + 6]
shl edx, 8
or ebp, edx
movzx edx, byte [esi + 7]
shl ebp, 8
or ebp, ecx
shl ebp, 8
or ebp, edx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], 0
jne 0x59b2ef
cmp byte [esp + 0x12], 0
jne 0x59b2ef
mov eax, dword [ebx + 0x44]
push eax
call fcn.005869c0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x59b6fc
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x1c]
mov dword [ecx], edi
mov edx, dword [ebx + 0x38]
mov ecx, dword [eax + 0x38]
mov edx, dword [edx]
mov eax, dword [esp + 0x40]
mov dword [ecx + 0x20], edx
mov dword [eax], ebx
mov dword [esp + 0x20], ebp
jmp 0x59b683
mov ecx, dword [eax + 0x24]
shr ecx, 2
sub ecx, 2
cmp ebp, ecx
ja 0x59b6db
cmp byte [esp + 0x12], 0
je 0x59b4a8
mov eax, dword [esp + 0x48]
cmp edi, eax
je 0x59b324
jae 0x59b4a8
cmp byte [esp + 0x4c], 2
jne 0x59b4a8
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov dword [edx], edi
mov dword [eax], ebx
mov ecx, dword [ebx + 0x44]
push ecx
mov byte [esp + 0x16], 0
call fcn.005869c0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x59b6fc
test ebp, ebp
jne 0x59b3a4
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x59b371
mov edx, dword [ebx + 0x38]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x38]
mov edx, dword [edx]
mov dword [ecx + 0x20], edx
mov dword [esp + 0x20], ebp
jmp 0x59b683
mov eax, dword [eax + 0x44]
push eax
call fcn.005869c0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x59b6fc
mov ecx, dword [ebx + 0x38]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x38]
mov ecx, dword [ecx]
mov dword [eax], ecx
mov dword [esp + 0x20], 0
jmp 0x59b683
mov ecx, dword [ebx + 0x38]
add ecx, 8
call fcn.0055e740
mov dword [esp + 0x24], eax
cmp eax, dword [esp + 0x28]
ja 0x59b72c
mov esi, dword [esp + 0x3c]
lea edx, [esp + 0x34]
push 0
push edx
call fcn.00586b70
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne 0x59b6fc
mov esi, dword [esp + 0x34]
mov eax, dword [esi + 0x44]
push eax
call fcn.005869c0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x59b73c
mov ecx, dword [ebx + 0x38]
mov eax, dword [ecx]
mov edx, dword [esi + 0x38]
mov dword [edx], eax
mov eax, dword [esi + 0x38]
lea ecx, [ebp - 1]
add eax, 4
mov edx, ecx
shr edx, 0x18
mov byte [eax], dl
mov edx, ecx
shr edx, 0x10
mov byte [eax + 1], dl
mov edx, ecx
shr edx, 8
mov byte [eax + 2], dl
mov byte [eax + 3], cl
mov edx, dword [esi + 0x38]
lea eax, [ecx*4]
mov ecx, dword [ebx + 0x38]
push eax
add ecx, 0xc
push ecx
add edx, 8
push edx
call fcn.005e13c0
add esp, 0xc
mov eax, esi
call fcn.0059a530
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x59b45e
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x38]
add eax, 0x20
jmp 0x59b47d
mov eax, dword [eax + 0x44]
push eax
call fcn.005869c0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x59b6fc
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x38]
mov ecx, dword [esp + 0x24]
mov edx, ecx
shr edx, 0x18
mov byte [eax], dl
mov edx, ecx
shr edx, 0x10
mov byte [eax + 1], dl
mov edx, ecx
shr edx, 8
mov byte [eax + 3], cl
mov byte [eax + 2], dl
mov dword [esp + 0x20], 0
jmp 0x59b683
test ebp, ebp
jbe 0x59b683
xor edi, edi
cmp dword [esp + 0x48], edi
jbe 0x59b584
cmp byte [esp + 0x4c], 2
mov dword [esp + 0x24], edi
jne 0x59b510
xor ecx, ecx
test ebp, ebp
jbe 0x59b584
lea eax, [esi + 0xa]
movzx edx, byte [eax - 2]
movzx edi, byte [eax - 1]
shl edx, 8
or edx, edi
movzx edi, byte [eax]
shl edx, 8
or edx, edi
movzx edi, byte [eax + 1]
shl edx, 8
or edx, edi
cmp edx, dword [esp + 0x48]
jbe 0x59b509
inc ecx
add eax, 4
cmp ecx, ebp
jb 0x59b4d4
mov edi, dword [esp + 0x24]
jmp 0x59b584
mov edi, ecx
jmp 0x59b584
lea ecx, [esi + 8]
call fcn.0055e740
sub eax, dword [esp + 0x48]
call fcn.0055e940
mov dword [esp + 0x2c], eax
mov eax, 1
cmp ebp, eax
jbe 0x59b584
lea edx, [esi + 0xe]
movzx ecx, byte [edx - 2]
movzx edi, byte [edx - 1]
shl ecx, 8
or ecx, edi
movzx edi, byte [edx]
shl ecx, 8
or ecx, edi
movzx edi, byte [edx + 1]
shl ecx, 8
or ecx, edi
sub ecx, dword [esp + 0x48]
jns 0x59b566
cmp ecx, 0x80000000
jne 0x59b564
mov ecx, SysReAllocString
jmp 0x59b566
neg ecx
cmp ecx, dword [esp + 0x2c]
jge 0x59b578
mov edi, eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x2c], ecx
jmp 0x59b57c
mov edi, dword [esp + 0x24]
inc eax
add edx, 4
cmp eax, ebp
jb 0x59b531
movzx ecx, byte [esi + edi*4 + 8]
movzx eax, byte [esi + edi*4 + 9]
movzx edx, byte [esi + edi*4 + 0xa]
shl ecx, 8
or eax, ecx
movzx ecx, byte [esi + edi*4 + 0xb]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
cmp eax, dword [esp + 0x28]
ja 0x59b745
cmp byte [esp + 0x12], 0
je 0x59b5d1
mov ecx, dword [esp + 0x48]
cmp eax, ecx
je 0x59b5d1
jae 0x59b683
cmp byte [esp + 0x4c], 2
jne 0x59b683
mov edx, dword [esp + 0x44]
mov dword [edx], eax
mov eax, dword [ebx + 0x44]
push eax
call fcn.005869c0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x59b6fc
lea eax, [ebp - 1]
cmp edi, eax
jae 0x59b5fe
mov ecx, dword [esi + ebp*4 + 4]
mov dword [esi + edi*4 + 8], ecx
mov edx, eax
shr edx, 0x18
mov byte [esi + 4], dl
mov ecx, eax
mov edx, eax
shr ecx, 0x10
shr edx, 8
mov byte [esi + 7], al
mov eax, dword [esp + 0x44]
mov byte [esi + 5], cl
mov byte [esi + 6], dl
mov esi, dword [esp + 0x3c]
mov ecx, dword [esi + 0x3c]
mov edi, dword [eax]
test ecx, ecx
je 0x59b640
cmp edi, dword [ecx]
ja 0x59b639
mov eax, edi
call fcn.0055f510
test eax, eax
je 0x59b640
mov eax, 1
jmp 0x59b642
xor eax, eax
mov ebx, dword [esp + 0x40]
xor ecx, ecx
test eax, eax
sete cl
mov eax, edi
push ecx
push ebx
call fcn.00586b70
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne 0x59b67e
mov edx, dword [ebx]
mov eax, dword [edx + 0x44]
push eax
call fcn.005869c0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
je 0x59b67e
mov eax, dword [ebx]
call fcn.0059a530
mov byte [esp + 0x12], 0
mov eax, dword [esp + 0x18]
call fcn.0059a530
cmp byte [esp + 0x12], 0
mov dword [esp + 0x18], 0
je 0x59b6fc
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x20]
jmp 0x59b1f4
push 0x65eed4
push 0xd878
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.00573920
add esp, 0x10
mov dword [esp + 0x14], 0xb
jmp 0x59b880
mov dword [esp + 0x14], eax
jmp 0x59b880
push 0x65eed4
push 0xd894
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.00573920
add esp, 0x10
mov dword [esp + 0x14], 0xb
mov eax, dword [esp + 0x20]
test eax, eax
je 0x59b880
mov eax, dword [eax + 0x44]
test eax, eax
je 0x59b880
test byte [eax + 0x18], 0x40
mov esi, dword [eax + 0x10]
je 0x59b860
mov ecx, eax
call fcn.00561170
jmp 0x59b865
mov eax, 0xd8b6
call fcn.0057c320
mov dword [esp + 0x14], eax
jmp 0x59b6fc
mov eax, esi
call fcn.0059a530
jmp 0x59b6fc
push 0x65eed4
push 0xd8f7
jmp 0x59b6e5
mov edx, dword [ebx + 0x44]
xor ecx, ecx
cmp byte [esi + 0x13], cl
push edx
sete cl
mov ebp, ecx
call fcn.005869c0
add esp, 4
test eax, eax
jne 0x59b920
mov eax, dword [0x69fe40]
xor edx, edx
div dword [esi + 0x20]
inc dword [esi + 0x2c]
mov ecx, dword [esi + 0x2c]
inc eax
cmp ecx, eax
jne 0x59b788
inc ecx
mov dword [esi + 0x2c], ecx
cmp byte [esi + 0x11], 0
je 0x59b7fc
mov ebx, dword [esi + 0x2c]
mov ecx, ebx
mov edi, esi
call fcn.00561ea0
cmp eax, ebx
jne 0x59b7fc
lea eax, [esp + 0x3c]
push ebp
push eax
mov eax, ebx
mov dword [esp + 0x44], 0
call fcn.00586b70
mov edi, eax
add esp, 8
test edi, edi
jne 0x59b7d9
mov ebx, dword [esp + 0x3c]
mov ecx, dword [ebx + 0x44]
push ecx
call fcn.005869c0
mov edi, eax
add esp, 4
mov eax, ebx
call fcn.0059a530
test edi, edi
je 0x59b7e3
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
mov eax, dword [0x69fe40]
xor edx, edx
div dword [esi + 0x20]
inc dword [esi + 0x2c]
mov ecx, dword [esi + 0x2c]
inc eax
cmp ecx, eax
jne 0x59b7fc
inc ecx
mov dword [esi + 0x2c], ecx
mov ecx, dword [esi + 0x2c]
mov edx, dword [esi + 0xc]
mov eax, dword [edx + 0x38]
mov edi, dword [esp + 0x40]
add eax, 0x1c
mov edx, ecx
shr edx, 0x18
mov byte [eax], dl
mov edx, ecx
shr edx, 0x10
mov byte [eax + 1], dl
mov edx, ecx
shr edx, 8
mov byte [eax + 3], cl
mov ecx, dword [esp + 0x44]
mov byte [eax + 2], dl
mov eax, dword [esi + 0x2c]
push ebp
push edi
mov dword [ecx], eax
call fcn.00586b70
add esp, 8
test eax, eax
jne 0x59b920
mov edx, dword [edi]
mov eax, dword [edx + 0x44]
push eax
call fcn.005869c0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
je 0x59b8c8
mov eax, dword [edi]
call fcn.0059a530
jmp 0x59b8c1
call fcn.0055f8e0
cmp dword [esi + 0x78], 0
jne 0x59b880
mov ecx, dword [esi + 0xcc]
cmp dword [ecx + 0xc], 0
jne 0x59b880
push esi
call fcn.00599100
add esp, 4
mov eax, dword [esp + 0x18]
test eax, eax
je 0x59b8c1
mov eax, dword [eax + 0x44]
test eax, eax
je 0x59b8c1
test byte [eax + 0x18], 0x40
mov esi, dword [eax + 0x10]
je 0x59b8a1
mov ecx, eax
call fcn.00561170
jmp 0x59b8a6
call fcn.0055f8e0
cmp dword [esi + 0x78], 0
jne 0x59b8c1
mov edx, dword [esi + 0xcc]
cmp dword [edx + 0xc], 0
jne 0x59b8c1
push esi
call fcn.00599100
add esp, 4
cmp dword [esp + 0x14], 0
jne 0x59b912
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov ecx, dword [eax + 0x44]
cmp word [ecx + 0x1a], 1
jle 0x59b903
call fcn.0059a530
push 0x65eed4
push 0xd959
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.00573920
add esp, 0x10
pop edi
pop esi
pop ebp
mov eax, 0xb
pop ebx
add esp, 0x28
ret
pop edi
pop esi
pop ebp
mov byte [eax], 0
mov eax, dword [esp + 8]
pop ebx
add esp, 0x28
ret
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x14]
mov dword [edx], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret