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

Disassembly:
sub esp, 0x38
push ebx
push ebp
mov ebx, eax
mov eax, dword [ebx + 8]
push esi
push edi
mov edi, dword [eax + 4]
mov dword [esp + 0x14], eax
mov al, byte [ebx]
test al, al
mov dword [esp + 0x1c], edi
je 0x437528
cmp al, 3
jb 0x437572
mov esi, ebx
call fcn.0042dd60
test eax, eax
jne 0x4378e0
cmp byte [ebx], al
jne 0x4378e0
movsx eax, byte [ebx + 0x44]
mov ebp, dword [ebx + 0x74]
movzx ecx, word [ebp + 0x18]
mov dword [esp + 0x2c], eax
movzx eax, word [ebx + 0x46]
cmp ecx, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], ebp
jg 0x43759d
push 0x4cbc24
push 0x13053
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0041bc90
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
push 0x4cbc24
push 0x1304a
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0041bc90
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
mov edx, dword [ebp + 0x40]
mov ax, word [edx + eax*2]
movzx edx, word [ebp + 0x1a]
mov ch, al
mov cl, ah
movzx esi, cx
and esi, edx
add esi, dword [ebp + 0x38]
cmp dword [ebp + 0x14], 0
mov dword [esp + 0x24], esi
jge 0x4375df
mov edi, ebp
call fcn.0042ef70
test eax, eax
je 0x4375db
mov eax, 0x13057
call fcn.004aae10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
mov edi, dword [esp + 0x1c]
mov al, byte [esp + 0x4c]
shr al, 1
and al, 1
mov byte [esp + 0x13], al
je 0x437636
cmp byte [ebp + 8], 0
je 0x437627
mov eax, dword [ebp + 0x4c]
push esi
push ebp
call eax
mov edx, dword [ebp + 0x14]
movzx ecx, ax
lea ecx, [ecx + edx + 2]
mov edx, dword [edi + 0x28]
add edx, edx
mov eax, 0xaaaaaaab
mul edx
shr edx, 1
add esp, 8
cmp ecx, edx
jg 0x437627
cmp word [ebp + 0x18], 1
je 0x437627
mov byte [esp + 0x13], 2
jmp 0x437636
mov esi, ebx
call fcn.0042dab0
test eax, eax
jne 0x4378e0
cmp byte [ebp + 8], 0
jne 0x43764f
push 0
push ebx
call fcn.00433110
add esp, 8
test eax, eax
jne 0x4378e0
test byte [ebx + 1], 0x20
je 0x437669
mov ecx, dword [ebx + 0x40]
mov edx, ebx
mov eax, edi
call fcn.0042dba0
test eax, eax
jne 0x4378e0
cmp dword [ebx + 0x70], 0
jne 0x437690
mov eax, dword [esp + 0x14]
cmp byte [eax + 0xb], 0
je 0x437690
mov ecx, dword [ebx + 0x24]
mov edx, dword [ebx + 0x20]
push ecx
push edx
mov edx, dword [ebx + 0x40]
xor edi, edi
mov ecx, eax
call fcn.0042d990
add esp, 8
mov esi, dword [ebp + 0x48]
call fcn.00429900
test eax, eax
jne 0x4378e0
mov esi, dword [esp + 0x24]
mov ecx, dword [ebp + 0x50]
lea eax, [esp + 0x30]
push eax
push esi
push ebp
call ecx
movzx edx, word [esp + 0x4c]
add esp, 0xc
cmp edx, dword [esp + 0x3c]
je 0x4376d3
push esi
lea eax, [esp + 0x34]
mov edx, ebp
call fcn.00433ab0
add esp, 4
mov dword [esp + 0x14], eax
jmp 0x4376db
mov dword [esp + 0x14], 0
movzx ecx, word [esp + 0x42]
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x14]
push eax
push ecx
push edx
mov esi, ebp
call fcn.00433fa0
mov eax, dword [esp + 0x20]
add esp, 0xc
test eax, eax
jne 0x4378e0
cmp byte [ebp + 8], al
jne 0x4377fe
mov edi, dword [ebx + 0x74]
cmp dword [edi + 0x14], eax
jge 0x43771f
call fcn.0042ef70
test eax, eax
jne 0x4378e0
movsx ecx, byte [ebx + 0x44]
mov eax, dword [esp + 0x2c]
sub ecx, 1
cmp eax, ecx
jge 0x43773b
mov edx, dword [ebx + eax*4 + 0x7c]
mov eax, dword [edx + 4]
mov dword [esp + 0x20], eax
jmp 0x437745
mov ecx, dword [ebx + 0x74]
mov edx, dword [ecx + 4]
mov dword [esp + 0x20], edx
movzx eax, word [edi + 0x18]
mov ecx, dword [edi + 0x40]
mov dx, word [ecx + eax*2 - 2]
movzx ecx, word [edi + 0x1a]
mov esi, dword [edi + 0x38]
mov ah, dl
mov al, dh
movzx ebp, ax
and ebp, ecx
add ebp, esi
add esi, 4
cmp ebp, esi
jae 0x43777c
mov eax, 0x130b2
call fcn.004aae10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
mov edx, dword [edi + 0x4c]
push ebp
push edi
call edx
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x54]
mov esi, dword [edi + 0x48]
movzx eax, ax
add esp, 8
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], edx
call fcn.00429900
test eax, eax
mov dword [esp + 0x14], eax
jne 0x4377d2
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x20]
add ecx, 4
push ecx
mov ecx, dword [esp + 0x30]
add ebp, 0xfffffffc
push ebp
push edx
call fcn.004340b0
add esp, 0x10
mov dword [esp + 0x14], eax
movzx edx, word [edi + 0x18]
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x14]
push eax
push ecx
sub edx, 1
push edx
mov esi, edi
call fcn.00433fa0
mov eax, dword [esp + 0x20]
add esp, 0xc
test eax, eax
jne 0x4378e0
mov ebp, dword [esp + 0x28]
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + 0x28]
mov edx, dword [ebx + 0x74]
mov eax, dword [edx + 0x14]
add ecx, ecx
lea eax, [eax + eax*2]
cmp eax, ecx
jg 0x437817
xor esi, esi
jmp 0x437826
call fcn.004366c0
mov esi, eax
test esi, esi
jne 0x4378de
movsx ecx, byte [ebx + 0x44]
mov edi, dword [esp + 0x2c]
cmp ecx, edi
jle 0x437879
mov eax, dword [ebx + 0x74]
call fcn.0042f570
add byte [ebx + 0x44], 0xff
movsx edx, byte [ebx + 0x44]
cmp edx, edi
jle 0x437863
mov cl, byte [ebx + 0x44]
movsx eax, cl
mov eax, dword [ebx + eax*4 + 0x78]
sub cl, 1
mov byte [ebx + 0x44], cl
call fcn.0042f590
movsx ecx, byte [ebx + 0x44]
cmp ecx, edi
jg 0x437846
movsx edx, byte [ebx + 0x44]
mov eax, dword [ebx + edx*4 + 0x78]
mov dword [ebx + 0x74], eax
call fcn.004366c0
mov esi, eax
test esi, esi
jne 0x4378de
cmp byte [esp + 0x13], 1
jbe 0x4378bb
mov byte [ebx], 2
movzx ecx, word [ebp + 0x18]
cmp dword [esp + 0x18], ecx
jl 0x4378aa
mov dword [ebx + 4], 0xffffffff
mov dx, word [ebp + 0x18]
sub dx, 1
mov word [ebx + 0x46], dx
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
mov dword [ebx + 4], 1
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
mov esi, ebx
call fcn.00432430
cmp byte [esp + 0x13], 0
mov esi, eax
je 0x4378d7
push ebx
call fcn.0042da30
add esp, 4
mov byte [ebx], 3
cmp esi, 0x10
jne 0x4378de
xor esi, esi
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret