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

Disassembly:
sub esp, 0x150
push ebx
push ebp
push esi
xor eax, eax
mov dword [esp + 0x1c], 0
push edi
xor ebp, ebp
mov dword [esp + 0x18], eax
push 0x40
mov dword [esp + 0x2c], eax
mov ebx, edx
mov dword [esp + 0x78], eax
mov edi, ecx
mov dword [esp + 0xe8], eax
mov byte [esp + 0xec], al
lea eax, [esp + 0x94]
push ebp
push eax
mov dword [esp + 0x120], ebx
mov dword [esp + 0x54], edi
mov dword [esp + 0x30], 0
mov dword [esp + 0x48], ebp
call fcn.004bb940
mov eax, dword [edi + 0x34]
add esp, 0xc
mov dword [esp + 0x38], eax
cmp dword [esp + 0x164], ebp
jne 0x420bac
lea eax, [ebp + 7]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x150
ret
movzx ecx, word [edi + 0x18]
movzx edx, byte [edi + 0xc]
lea esi, [edx + ecx]
cmp esi, 2
jae 0x420bc0
xor ebx, ebx
jmp 0x420be5
test ebx, ebx
je 0x420bd7
cmp ebx, esi
jne 0x420bd6
mov eax, dword [esp + 0x16c]
lea ebx, [eax - 2]
add ebx, esi
jmp 0x420bde
dec ebx
mov eax, dword [esp + 0x16c]
mov esi, 2
sub esi, eax
mov dword [esp + 0x50], ebx
lea eax, [esi + 1]
sub ebx, edx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x1c], eax
lea edx, [ebx + esi]
cmp edx, ecx
jne 0x420c06
movzx ecx, byte [edi + 9]
add ecx, 8
jmp 0x420c1a
mov eax, dword [edi + 0x40]
mov ax, word [eax + edx*2]
mov ch, al
mov cl, ah
movzx eax, word [edi + 0x1a]
movzx ecx, cx
and ecx, eax
add ecx, dword [edi + 0x38]
xor edx, edx
mov dword [esp + 0x44], ecx
mov eax, dword [ecx]
bswap eax
mov dword [esp + 0x70], eax
mov ebx, eax
mov dword [esp + 0x6c], eax
test edx, edx
jne 0x420d08
mov edi, dword [esp + 0x38]
cmp ebx, dword [edi + 0x30]
jbe 0x420c6a
push 0x4e01cc
push 0x10dcc
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00407380
add esp, 0x14
mov edx, 0xb
jmp 0x420cf4
mov eax, dword [edi]
lea ecx, [esp + 0x40]
push 0
push ecx
push ebx
push eax
mov eax, dword [eax + 0xdc]
call eax
mov edx, eax
add esp, 0x10
mov dword [esp + 0x18], edx
test edx, edx
jne 0x420cf8
mov edx, dword [esp + 0x40]
mov eax, dword [edx + 8]
mov dword [esp + esi*4 + 0x60], eax
cmp byte [eax], 0
jne 0x420cf2
mov ecx, dword [edx + 8]
cmp ebx, dword [ecx + 4]
je 0x420cbe
mov eax, dword [edx + 4]
cmp ebx, 1
mov dword [ecx + 0x38], eax
setne al
mov dword [ecx + 0x48], edx
dec al
mov dword [ecx + 0x34], edi
and al, 0x64
mov dword [ecx + 4], ebx
mov byte [ecx + 9], al
mov ecx, dword [esp + esi*4 + 0x60]
call fcn.0041a350
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
je 0x420cf2
mov ecx, dword [esp + esi*4 + 0x60]
test ecx, ecx
je 0x420cf8
call fcn.0041a6e0
mov edx, dword [esp + 0x18]
mov edi, 4
mov eax, esi
mov dword [esp + 0x28], edx
imul edi, eax
jmp 0x420d0f
xor edx, edx
mov dword [esp + 0x18], edx
mov edi, 4
mov dword [esp + 0x28], edx
mov eax, esi
imul edi, eax
jmp 0x420d0f
lea edi, [esi*4]
test edx, edx
jne 0x421f44
lea ebx, [esp + 0x60]
mov ecx, dword [ebx + edi]
cmp dword [ecx + 0x14], edx
jge 0x420d3a
call fcn.0041a120
mov edx, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x28], edx
test edx, edx
jne 0x420e7c
mov ecx, dword [ebx + edi]
mov edi, dword [esp + 0x20]
add edi, 4
movzx ecx, word [ecx + 0x18]
add edi, ecx
mov ecx, esi
dec esi
mov dword [esp + 0x20], edi
test ecx, ecx
je 0x420e97
mov ebx, dword [esp + 0x48]
mov dl, byte [ebx + 0xc]
test dl, dl
je 0x420dab
mov ecx, dword [esp + 0x50]
movzx eax, word [ebx + 0x1c]
add ecx, esi
cmp ecx, eax
jne 0x420dab
mov eax, dword [ebx + 0x24]
push eax
mov dword [esp + esi*4 + 0xf0], eax
push ebx
mov edi, dword [eax]
mov eax, dword [ebx + 0x4c]
bswap edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x74], edi
call eax
mov edx, dword [esp + 0x20]
add esp, 8
movzx eax, ax
mov byte [ebx + 0xc], 0
mov ebx, edi
mov dword [esp + esi*4 + 0xd0], eax
jmp 0x420c31
mov ecx, dword [esp + 0x50]
movzx eax, dl
sub ecx, eax
mov eax, dword [ebx + 0x40]
add ecx, esi
mov ax, word [eax + ecx*2]
mov ch, al
mov cl, ah
movzx eax, word [ebx + 0x1a]
movzx edi, cx
and edi, eax
add edi, dword [ebx + 0x38]
push edi
mov dword [esp + esi*4 + 0xf0], edi
mov eax, dword [edi]
bswap eax
mov dword [esp + 0x74], eax
mov ebx, eax
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x4c]
push eax
mov eax, dword [eax + 0x4c]
call eax
movzx edx, ax
add esp, 8
mov eax, dword [esp + 0x38]
mov dword [esp + 0x34], edx
mov dword [esp + esi*4 + 0xd0], edx
test byte [eax + 0x18], 0xc
je 0x420e4f
mov eax, dword [esp + 0x48]
mov ecx, edi
mov ebp, dword [esp + 0x38]
sub ecx, dword [eax + 0x38]
lea eax, [edx + ecx]
cmp eax, dword [ebp + 0x28]
mov ebp, 0
jg 0x420e4f
mov eax, dword [esp + 0x164]
push edx
add eax, ecx
push edi
push eax
call fcn.004bbbe0
mov eax, dword [esp + 0x54]
add esp, 0xc
mov edx, dword [esp + 0x34]
sub edi, dword [eax + 0x38]
add edi, dword [esp + 0x164]
mov dword [esp + esi*4 + 0xec], edi
mov edi, dword [esp + 0x48]
lea eax, [esp + 0x28]
push eax
push edx
mov edx, dword [esp + 0x58]
mov ecx, edi
movzx eax, byte [edi + 0xc]
sub edx, eax
add edx, esi
call fcn.0041fc40
mov edx, dword [esp + 0x30]
add esp, 8
mov dword [esp + 0x18], edx
jmp 0x420c31
push edi
lea eax, [esp + 0x64]
push 0
push eax
call fcn.004bb940
mov ebp, dword [esp + 0x24]
add esp, 0xc
xor ebx, ebx
jmp 0x421861
mov eax, dword [esp + 0x38]
lea esi, [edi + 3]
and esi, 0xfffffffc
mov eax, dword [eax + 0x24]
lea ecx, [esi + esi*2]
lea eax, [eax + ecx*2]
cdq
push edx
push eax
call fcn.004042c0
mov ebx, eax
add esp, 8
mov dword [esp + 0x98], ebx
test ebx, ebx
jne 0x420eca
lea ebp, [eax + 7]
jmp 0x421861
mov ecx, dword [esp + 0x60]
lea eax, [ebx + esi*4]
mov dword [esp + 0x9c], eax
lea eax, [eax + esi*2]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x94], ecx
movzx eax, byte [ecx + 8]
shl ax, 2
movzx eax, ax
mov dword [esp + 0x58], eax
mov al, byte [ecx + 2]
mov byte [esp + 0x17], al
movzx eax, al
mov dword [esp + 0x110], eax
xor eax, eax
mov dword [esp + 0x34], eax
cmp dword [esp + 0x1c], eax
jle 0x421150
nop word [eax + eax]
shl eax, 2
mov dword [esp + 0x5c], eax
mov edi, dword [esp + eax + 0x60]
mov dword [esp + 0x54], edi
movzx eax, word [edi + 0x1a]
mov ebx, dword [edi + 0x38]
mov ecx, eax
movzx esi, word [edi + 0x12]
movzx edx, word [edi + 0x18]
add esi, ebx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x10c], ebx
mov ecx, dword [eax + 0x38]
mov al, byte [ebx]
mov dword [esp + 0x20], esi
cmp al, byte [ecx]
jne 0x4212de
movzx eax, byte [edi + 0xc]
mov ecx, dword [esp + 0x9c]
add eax, edx
add eax, eax
push eax
mov eax, dword [esp + 0x94]
push 0
lea eax, [ecx + eax*2]
push eax
call fcn.004bb940
add esp, 0xc
cmp byte [edi + 0xc], 0
jbe 0x42102d
movzx edx, word [edi + 0x1c]
cmp dword [esp + 0x40], edx
jb 0x4212b4
test edx, edx
je 0x420fed
mov edi, dword [esp + 0x90]
mov ebp, dword [esp + 0x30]
mov ax, word [esi]
add esi, 2
mov ch, al
mov cl, ah
movzx eax, bp
movzx ecx, cx
and ecx, eax
mov eax, dword [esp + 0x98]
add ecx, ebx
mov dword [eax + edi*4], ecx
inc edi
sub edx, 1
jne 0x420fb6
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x90], edi
mov edi, dword [esp + 0x54]
mov dword [esp + 0x20], esi
xor edx, edx
cmp byte [edi + 0xc], dl
jbe 0x42102d
mov ebx, dword [esp + 0x90]
lea ecx, [edi + 0x24]
mov esi, dword [esp + 0x98]
mov eax, dword [ecx]
lea ecx, [ecx + 4]
mov dword [esi + ebx*4], eax
inc edx
movzx eax, byte [edi + 0xc]
inc ebx
cmp edx, eax
jl 0x421005
mov esi, dword [esp + 0x20]
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x90], ebx
mov ebx, dword [esp + 0x10c]
movzx eax, word [edi + 0x12]
movzx ecx, word [edi + 0x18]
add eax, ebx
lea edx, [eax + ecx*2]
cmp esi, edx
jae 0x421082
mov edi, dword [esp + 0x90]
mov ebp, dword [esp + 0x78]
nop dword [eax]
mov ax, word [esi]
add esi, 2
mov ch, al
mov cl, ah
movzx eax, bp
movzx ecx, cx
and ecx, eax
mov eax, dword [esp + 0x98]
add ecx, ebx
mov dword [eax + edi*4], ecx
inc edi
cmp esi, edx
jb 0x421050
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x90], edi
mov edi, dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x90]
mov dword [esp + edx + 0x134], ebx
cmp eax, dword [esp + 0x4c]
jge 0x421141
cmp byte [esp + 0x17], 0
jne 0x421141
movzx eax, word [esp + edx + 0xd0]
mov ecx, dword [esp + 0x9c]
mov esi, dword [esp + 0x2c]
push eax
push dword [esp + edx + 0xf0]
add esi, ebp
mov word [ecx + ebx*2], ax
add ebp, eax
push esi
mov dword [esp + 0x48], ebp
call fcn.004bbbe0
mov ecx, dword [esp + 0x64]
add esp, 0xc
mov edx, dword [esp + 0x9c]
movzx eax, cx
add eax, esi
mov esi, dword [esp + 0x98]
mov dword [esi + ebx*4], eax
mov ax, word [edx + ebx*2]
sub ax, cx
mov word [edx + ebx*2], ax
cmp byte [edi + 8], 0
movzx ecx, ax
jne 0x421118
mov eax, dword [edi + 0x38]
mov ecx, dword [esi + ebx*4]
mov eax, dword [eax + 8]
mov dword [ecx], eax
jmp 0x421135
cmp ecx, 4
jae 0x421135
mov eax, dword [esp + 0x2c]
mov byte [eax + ebp], 0
inc ebp
inc word [edx + ebx*2]
cmp word [edx + ebx*2], 4
jb 0x421121
mov dword [esp + 0x3c], ebp
mov eax, dword [esp + 0x34]
inc ebx
mov dword [esp + 0x90], ebx
inc eax
mov dword [esp + 0x34], eax
cmp eax, dword [esp + 0x1c]
jl 0x420f20
mov eax, dword [esp + 0x58]
xor ebp, ebp
movzx ebx, ax
xor edx, edx
mov eax, dword [esp + 0x38]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x20], edx
mov eax, dword [eax + 0x28]
add eax, 0xfffffff4
add ebx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x54], ebx
test eax, eax
jle 0x421252
nop
mov esi, dword [esp + edx*4 + 0x60]
mov ecx, dword [esp + edx*4 + 0x134]
mov dword [esp + 0x78], ecx
mov eax, dword [esi + 0x3c]
mov dword [esp + ebp*4 + 0xa0], eax
mov dword [esp + ebp*4 + 0xb8], ecx
test ebp, ebp
je 0x4211b2
cmp ecx, dword [esp + ebp*4 + 0xb4]
jne 0x4211b2
dec ebp
mov dword [esp + 0x2c], ebp
cmp byte [esp + 0x17], 0
jne 0x4211d6
mov eax, dword [esp + 0x48]
inc ebp
mov dword [esp + 0x2c], ebp
mov eax, dword [eax + 0x3c]
mov dword [esp + ebp*4 + 0xa0], eax
lea eax, [ecx + 1]
mov dword [esp + ebp*4 + 0xb8], eax
mov edi, ebx
mov dword [esp + 0x4c], 0
sub edi, dword [esi + 0x14]
lea eax, [esp + 0xd0]
cmp byte [esi + 0xc], 0
lea eax, [eax + edx*4]
mov dword [esp + 0x5c], eax
mov dword [eax], edi
jbe 0x421235
mov ebp, dword [esp + 0x4c]
lea ebx, [esi + 0x24]
push dword [ebx]
mov eax, dword [esi + 0x4c]
push esi
call eax
movzx eax, ax
lea ebx, [ebx + 4]
add eax, 2
inc ebp
add edi, eax
add esp, 8
movzx eax, byte [esi + 0xc]
cmp ebp, eax
jl 0x421200
mov eax, dword [esp + 0x5c]
mov ebp, dword [esp + 0x2c]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x54]
mov dword [eax], edi
mov eax, dword [esp + 0x1c]
inc ebp
mov dword [esp + edx*4 + 0xf8], ecx
inc edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x2c], ebp
cmp edx, eax
jl 0x421180
mov ebx, dword [esp + 0x90]
lea edx, [esp + 0xf8]
sub edx, 4
mov dword [esp + 0x20], 0
mov dword [esp + 0x3c], edx
mov esi, eax
mov dword [esp + 0x30], esi
test eax, eax
jle 0x42153a
mov edx, 1
xor ecx, ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x2c], ecx
nop dword [eax]
lea eax, [esp + 0xd0]
add eax, ecx
mov dword [esp + 0x40], eax
mov edi, dword [eax]
cmp edi, dword [esp + 0x54]
jle 0x4213ee
lea ebx, [esp + 0xd4]
add ebx, ecx
jmp 0x421319
push 0x4e01cc
push 0x12485
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00407380
add esp, 0x14
mov ebp, 0xb
xor ebx, ebx
jmp 0x421861
push 0x4e01cc
push 0x1246d
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00407380
add esp, 0x14
mov ebp, 0xb
xor ebx, ebx
jmp 0x421861
lea eax, [esp + 0xd0]
add eax, ecx
cmp edx, esi
jl 0x421343
inc edx
mov dword [esp + 0x30], edx
cmp edx, 5
jg 0x4214e6
mov ebp, dword [esp + 0x90]
mov dword [ebx], 0
mov edi, dword [eax]
mov dword [esp + ecx + 0xfc], ebp
jmp 0x42134a
mov ebp, dword [esp + 0x90]
mov esi, dword [esp + ecx + 0xf8]
mov edx, dword [esp + 0x9c]
lea ecx, [esi - 1]
mov dword [esp + 0x4c], ecx
movzx eax, word [edx + ecx*2]
test ax, ax
jne 0x421380
mov edx, ecx
lea ecx, [esp + 0x90]
call fcn.004200b0
mov edx, dword [esp + 0x9c]
movzx eax, ax
mov ecx, dword [esp + 0x40]
movzx eax, ax
add eax, 2
sub edi, eax
cmp byte [esp + 0x17], 0
mov dword [ecx], edi
jne 0x4213bd
cmp esi, ebp
jge 0x4213bb
movzx eax, word [edx + esi*2]
test ax, ax
jne 0x4213b3
mov edx, esi
lea ecx, [esp + 0x90]
call fcn.004200b0
movzx eax, ax
movzx eax, ax
add eax, 2
jmp 0x4213bd
xor eax, eax
mov ecx, dword [esp + 0x2c]
lea ebp, [esp + 0xf8]
add dword [ebx], eax
add ebp, ecx
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov dword [ebp], eax
cmp edi, dword [esp + 0x54]
jg 0x421310
mov ebx, dword [esp + 0x90]
jmp 0x4213f7
lea ebp, [esp + 0xf8]
add ebp, ecx
mov esi, dword [ebp]
cmp esi, ebx
jge 0x421498
mov edx, dword [esp + 0x9c]
nop dword [eax]
movzx eax, word [edx + esi*2]
test ax, ax
jne 0x421431
mov edx, esi
lea ecx, [esp + 0x90]
call fcn.004200b0
mov edx, dword [esp + 0x9c]
movzx eax, ax
movzx eax, ax
add eax, 2
add edi, eax
cmp edi, dword [esp + 0x54]
jg 0x421490
mov ecx, dword [esp + 0x40]
inc esi
cmp byte [esp + 0x17], 0
mov dword [ebp], esi
mov dword [ecx], edi
jne 0x42147f
cmp esi, ebx
jge 0x42147d
movzx eax, word [edx + esi*2]
test ax, ax
jne 0x421475
mov edx, esi
lea ecx, [esp + 0x90]
call fcn.004200b0
mov edx, dword [esp + 0x9c]
movzx eax, ax
movzx eax, ax
add eax, 2
jmp 0x42147f
xor eax, eax
mov ecx, dword [esp + 0x2c]
sub dword [esp + ecx + 0xd4], eax
cmp esi, ebx
jl 0x421410
jmp 0x421494
mov ecx, dword [esp + 0x2c]
cmp esi, ebx
jl 0x4214a8
mov edx, dword [esp + 0x34]
mov esi, edx
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x30], esi
jmp 0x4214c7
mov ebp, dword [esp + 0x20]
test ebp, ebp
jle 0x4214b9
mov eax, dword [esp + 0x3c]
mov eax, dword [ecx + eax]
jmp 0x4214bb
xor eax, eax
cmp esi, eax
jle 0x421510
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
inc ebp
add ecx, 4
inc edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x34], edx
cmp ebp, esi
jl 0x421290
mov edx, dword [esp + 0x3c]
jmp 0x42153e
push 0x4e01cc
push 0x124ea
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00407380
add esp, 0x14
mov ebp, 0xb
xor ebx, ebx
jmp 0x421861
push 0x4e01cc
push 0x1250b
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00407380
add esp, 0x14
mov ebp, 0xb
xor ebx, ebx
jmp 0x421861
mov dword [esp + 0x3c], edx
lea eax, [esi - 1]
mov ecx, eax
mov dword [esp + 0x34], eax
test ecx, ecx
jle 0x4216a5
nop
shl ecx, 2
mov dword [esp + 0x20], ecx
mov ebp, dword [ecx + edx]
mov eax, dword [esp + ecx + 0xcc]
mov edi, dword [esp + ecx + 0xd0]
mov ecx, dword [esp + 0x9c]
lea esi, [ebp - 1]
mov dword [esp + 0x2c], eax
mov edx, esi
sub edx, dword [esp + 0x110]
inc edx
cmp word [ecx + edx*2], 0
lea eax, [ecx + edx*2]
mov dword [esp + 0x4c], eax
jne 0x4215a1
lea ecx, [esp + 0x90]
call fcn.004200b0
mov ecx, dword [esp + 0x9c]
mov ebx, dword [esp + 0x4c]
jmp 0x4215b7
mov ecx, dword [esp + 0x9c]
cmp word [ecx + esi*2], 0
mov dword [esp + 0x5c], esi
mov dword [esp + 0x4c], esi
jne 0x4215d4
mov edx, esi
lea ecx, [esp + 0x90]
call fcn.004200b0
test edi, edi
je 0x42161b
cmp dword [esp + 0x16c], 0
mov edx, ebp
jne 0x42165e
mov ecx, dword [esp + 0x30]
mov eax, 2
mov ebp, dword [esp + 0x2c]
dec ecx
cmp dword [esp + 0x34], ecx
mov ecx, 0
cmove eax, ecx
mov ecx, ebp
sub ecx, eax
mov eax, dword [esp + 0x9c]
movzx eax, word [eax + esi*2]
sub ecx, eax
movzx eax, word [ebx]
add eax, 2
add eax, edi
cmp eax, ecx
jg 0x421662
movzx eax, word [ebx]
mov ecx, 0xfffffffe
mov ebp, dword [esp + 0x4c]
add eax, 2
mov edx, dword [esp + 0x5c]
add edi, eax
mov eax, dword [esp + 0x9c]
sub ebx, 2
movzx eax, word [eax + esi*2]
sub ecx, eax
mov eax, dword [esp + 0x20]
add dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x3c]
mov dword [eax + ecx], esi
sub esi, 1
jns 0x4215b0
mov ebp, dword [esp + 0x2c]
jmp 0x421666
mov ebp, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x90]
mov dword [esp + eax + 0xd0], edi
mov dword [esp + eax + 0xcc], ebp
cmp ecx, 1
jbe 0x42168e
mov esi, dword [esp + 0x3c]
mov eax, dword [eax + esi - 4]
jmp 0x421690
xor eax, eax
cmp edx, eax
jle 0x421703
mov edx, dword [esp + 0x3c]
dec ecx
mov dword [esp + 0x34], ecx
test ecx, ecx
jg 0x421550
mov eax, dword [esp + 0x60]
xor esi, esi
mov eax, dword [eax + 0x38]
movzx eax, byte [eax]
mov dword [esp + 0x20], eax
lea eax, [esi + 1]
cmp dword [esp + 0x30], esi
jle 0x4218b7
mov edi, dword [esp + 0x1c]
cmp esi, edi
jge 0x421797
mov edi, dword [esp + esi*4 + 0x60]
mov dword [esp + esi*4 + 0x7c], edi
mov dword [esp + esi*4 + 0x60], 0
mov dword [esp + 0x40], edi
mov ecx, dword [edi + 0x48]
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
je 0x421731
mov eax, dword [edx + 0x1c]
cmp eax, dword [ecx + 0x18]
jb 0x421731
cmp dword [edx + 0x68], 0
je 0x42172d
call fcn.00412ee0
jmp 0x421756
push 0x4e01cc
push 0x12535
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00407380
add esp, 0x14
mov ebp, 0xb
xor ebx, ebx
jmp 0x421861
xor ebp, ebp
jmp 0x421758
mov ebp, dword [edx + 0x2c]
mov dword [esp + 0x18], ebp
test ebp, ebp
jne 0x42175c
mov eax, dword [edx + 0x9c]
cmp eax, dword [edx + 0xa8]
jbe 0x421751
call fcn.00414ad0
jmp 0x421756
call fcn.00414a40
mov ebp, eax
mov dword [esp + 0x18], ebp
mov eax, dword [esp + 0x114]
xor ecx, ecx
sub eax, dword [esp + 0x50]
inc dword [esp + 0x24]
cmp esi, eax
mov eax, dword [edi + 0x48]
sete cl
mov dword [esp + 0x28], ebp
inc ecx
movsx eax, word [eax + 0x1e]
cmp eax, ecx
je 0x42178a
test ebp, ebp
je 0x42183a
test ebp, ebp
jne 0x42185d
jmp 0x421825
cmp dword [esp + 0x16c], 0
lea edx, [esp + 0x40]
mov ecx, dword [esp + 0x70]
cmovne ecx, eax
lea eax, [esp + 0x6c]
push 0
push ecx
mov ecx, dword [esp + 0x40]
push eax
call fcn.0041e810
mov ebp, eax
add esp, 0xc
mov dword [esp + 0x18], ebp
mov dword [esp + 0x28], ebp
test ebp, ebp
jne 0x421f56
mov edi, dword [esp + 0x40]
mov ecx, edi
mov edx, dword [esp + 0x20]
call fcn.0041a460
mov ecx, dword [esp + 0x38]
inc dword [esp + 0x24]
mov dword [esp + esi*4 + 0x7c], edi
mov dword [esp + esi*4 + 0x134], ebx
cmp byte [ecx + 0x11], 0
je 0x42181d
mov edx, dword [edi + 4]
lea eax, [esp + 0x28]
push eax
mov eax, dword [esp + 0x4c]
push dword [eax + 4]
push 5
call fcn.00418fa0
mov ebp, dword [esp + 0x34]
add esp, 0xc
mov dword [esp + 0x18], ebp
test ebp, ebp
jne 0x42185d
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x70], eax
inc esi
cmp esi, dword [esp + 0x30]
jge 0x4218b7
mov eax, 1
jmp 0x4216c2
push 0x4e01cc
push 0x12556
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00407380
add esp, 0x14
mov ebp, 0xb
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x98]
test eax, eax
je 0x421879
push eax
call fcn.004044e0
add esp, 4
xor esi, esi
test edi, edi
jle 0x421892
nop
mov ecx, dword [esp + esi*4 + 0x60]
test ecx, ecx
je 0x42188d
call fcn.0041a6e0
inc esi
cmp esi, edi
jl 0x421880
xor esi, esi
test ebx, ebx
jle 0x4218aa
mov ecx, dword [esp + esi*4 + 0x7c]
test ecx, ecx
je 0x4218a5
call fcn.0041a6e0
inc esi
cmp esi, ebx
jl 0x421898
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x150
ret
mov ebp, dword [esp + 0x24]
xor ecx, ecx
test ebp, ebp
jle 0x42199e
mov eax, dword [esp + ecx*4 + 0x7c]
mov edx, dword [eax + 4]
mov eax, dword [eax + 0x48]
mov dword [esp + ecx*4 + 0x148], edx
mov dword [esp + ecx*4 + 0x118], edx
mov ax, word [eax + 0x1c]
mov word [esp + ecx*2 + 0xec], ax
xor eax, eax
test ecx, ecx
jle 0x421902
nop
cmp dword [esp + eax*4 + 0x148], edx
je 0x421a4d
inc eax
cmp eax, ecx
jl 0x4218f0
inc ecx
cmp ecx, ebp
jl 0x4218c5
xor ebx, ebx
nop dword [eax]
xor esi, esi
lea ecx, [esi + 1]
cmp ebp, ecx
jle 0x421940
xor edi, edi
nop dword [eax + eax]
lea edx, [ecx*4]
mov eax, dword [esp + edx + 0x118]
cmp eax, dword [esp + edi + 0x118]
jae 0x42193b
mov esi, ecx
mov edi, edx
inc ecx
cmp ecx, ebp
jl 0x421920
mov edi, dword [esp + esi*4 + 0x118]
mov dword [esp + esi*4 + 0x118], 0xffffffff
cmp esi, ebx
je 0x421995
jle 0x421974
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 0x30]
mov eax, dword [esp + esi*4 + 0x7c]
inc edx
add edx, esi
mov ecx, dword [eax + 0x48]
xor eax, eax
mov word [ecx + 0x1c], ax
call fcn.0040eeb0
mov eax, dword [esp + ebx*4 + 0x7c]
mov edx, edi
mov ecx, dword [eax + 0x48]
mov ax, word [esp + esi*2 + 0xec]
mov word [ecx + 0x1c], ax
call fcn.0040eeb0
mov eax, dword [esp + ebx*4 + 0x7c]
mov dword [eax + 4], edi
inc ebx
cmp ebx, ebp
jl 0x421910
test byte [esp + 0x20], 8
mov eax, dword [esp + ebp*4 + 0x78]
mov ecx, dword [esp + 0x44]
mov eax, dword [eax + 4]
bswap eax
mov dword [ecx], eax
jne 0x4219db
mov ecx, dword [esp + 0x1c]
cmp ecx, ebp
je 0x4219db
lea edx, [esp + 0x60]
lea eax, [esp + 0x7c]
cmovge eax, edx
mov eax, dword [eax + ecx*4 - 4]
mov edx, dword [eax + 0x38]
mov eax, dword [esp + ebp*4 + 0x78]
mov ecx, dword [eax + 0x38]
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x38]
cmp byte [eax + 0x11], 0
je 0x421bca
mov esi, dword [esp + 0x7c]
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x44], 0
movzx eax, byte [esi + 0xc]
movzx ebx, word [esi + 0x18]
add ebx, eax
mov eax, dword [esp + 0x90]
test eax, eax
jle 0x421bca
mov edx, esi
mov dword [esp + 0x40], edi
mov dword [esp + 0x30], edx
nop dword [eax]
mov ecx, dword [esp + 0x98]
mov ecx, dword [ecx + ebp*4]
mov dword [esp + 0x20], ecx
cmp ebp, ebx
jne 0x421a7d
xor edx, edx
cmp byte [esp + 0x17], dl
sete dl
nop dword [eax + eax]
inc edi
cmp edi, dword [esp + 0x24]
jge 0x421a5c
mov esi, dword [esp + edi*4 + 0x7c]
jmp 0x421a60
push 0x4e01cc
push 0x12584
jmp 0x421844
mov esi, dword [esp + edi*4 + 0x60]
movzx eax, word [esi + 0x18]
movzx ecx, byte [esi + 0xc]
add eax, edx
add ecx, eax
add ebx, ecx
cmp ebp, ebx
je 0x421a40
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x40]
cmp ebp, dword [esp + ecx + 0xf8]
mov ecx, dword [esp + 0x20]
jne 0x421ab1
mov edx, dword [esp + 0x44]
inc edx
mov dword [esp + 0x44], edx
shl edx, 2
cmp byte [esp + 0x17], 0
mov dword [esp + 0x40], edx
mov edx, dword [esp + edx + 0x7c]
mov dword [esp + 0x30], edx
je 0x421bc1
cmp edi, dword [esp + 0x24]
jge 0x421ad1
mov eax, dword [edx + 4]
cmp eax, dword [esp + edi*4 + 0x148]
jne 0x421ad1
cmp ecx, dword [esi + 0x38]
jb 0x421ad1
cmp ecx, dword [esi + 0x3c]
jb 0x421bba
cmp word [esp + 0x58], 0
jne 0x421aff
lea eax, [esp + 0x28]
push eax
push dword [edx + 4]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x40]
push 5
bswap edx
call fcn.00418fa0
mov eax, dword [esp + 0x34]
add esp, 0xc
mov edx, dword [esp + 0x30]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x9c]
movzx eax, word [eax + ebp*2]
test ax, ax
jne 0x421b24
mov edx, ebp
lea ecx, [esp + 0x90]
call fcn.004200b0
mov edx, dword [esp + 0x30]
movzx eax, ax
cmp ax, word [edx + 0x10]
jbe 0x421ba5
cmp dword [esp + 0x18], 0
jne 0x421bad
lea eax, [esp + 0x118]
push eax
push dword [esp + 0x24]
mov eax, dword [edx + 0x50]
push edx
call eax
movzx eax, word [esp + 0x134]
add esp, 0xc
cmp eax, dword [esp + 0x124]
jae 0x421bb6
mov edx, dword [esi + 0x3c]
mov ecx, dword [esp + 0x20]
cmp edx, ecx
jb 0x421b6c
add eax, ecx
cmp edx, eax
jb 0x421c2f
lea eax, [esp + 0x28]
push eax
mov eax, dword [esp + 0x34]
push dword [eax + 4]
movzx eax, word [esp + 0x132]
push 3
mov edx, dword [eax + ecx - 4]
mov eax, dword [esp + 0x3c]
bswap edx
mov ecx, dword [eax + 0x34]
call fcn.00418fa0
mov eax, dword [esp + 0x34]
add esp, 0xc
mov edx, dword [esp + 0x30]
mov dword [esp + 0x18], eax
jmp 0x421ba9
mov eax, dword [esp + 0x18]
test eax, eax
je 0x421bba
mov ebp, dword [esp + 0x18]
jmp 0x42185d
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x90]
inc ebp
cmp ebp, eax
jl 0x421a20
mov ebx, dword [esp + 0x24]
xor ebp, ebp
lea eax, [ebx - 1]
test eax, eax
jle 0x421d67
nop dword [eax + eax]
mov esi, dword [esp + ebp*4 + 0xf8]
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + ebp*4 + 0x7c]
mov ebx, dword [esp + 0x74]
add ebx, dword [esp + 0x164]
mov edi, dword [eax + esi*4]
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x58]
movzx edx, cx
mov ecx, dword [esp + 0x44]
movzx eax, word [eax + esi*2]
add edx, eax
cmp byte [ecx + 8], 0
jne 0x421c3e
mov ecx, dword [ecx + 0x38]
mov eax, dword [edi]
mov dword [ecx + 8], eax
jmp 0x421cea
push 0x4e01cc
push 0x10aa7
jmp 0x421844
cmp byte [esp + 0x17], 0
je 0x421cd1
lea eax, [esp + 0x148]
dec esi
push eax
mov eax, dword [esp + 0x9c]
push dword [eax + esi*4]
mov eax, dword [ecx + 0x50]
push ecx
call eax
mov edx, dword [esp + 0x158]
add esp, 0xc
mov ecx, dword [esp + 0x148]
mov edi, ebx
test edx, edx
ja 0x421cbd
jb 0x421c80
cmp ecx, 0x7f
ja 0x421c92
mov eax, 1
and cl, 0x7f
mov byte [ebx + 4], cl
xor ebx, ebx
lea edx, [eax + 4]
jmp 0x421cea
test edx, edx
ja 0x421cbd
jb 0x421ca0
cmp ecx, 0x3fff
ja 0x421cbd
mov eax, ecx
and cl, 0x7f
shrd eax, edx, 7
mov byte [ebx + 5], cl
or al, 0x80
mov byte [ebx + 4], al
mov eax, 2
xor ebx, ebx
lea edx, [eax + 4]
jmp 0x421cea
push edx
push ecx
lea ecx, [ebx + 4]
call fcn.00408ca0
add esp, 8
xor ebx, ebx
lea edx, [eax + 4]
jmp 0x421cea
sub edi, 4
cmp eax, 4
jne 0x421cea
mov eax, dword [esp + 0x48]
push edi
push eax
mov eax, dword [eax + 0x4c]
call eax
add esp, 8
movzx edx, ax
add dword [esp + 0x74], edx
xor eax, eax
cmp dword [esp + 0xb8], esi
jg 0x421d0f
nop dword [eax]
cmp eax, 6
jge 0x421d0f
inc eax
cmp dword [esp + eax*4 + 0xb8], esi
jle 0x421d00
mov ecx, dword [esp + eax*4 + 0xa0]
cmp ecx, edi
jb 0x421d25
lea eax, [edx + edi]
cmp ecx, eax
jb 0x421dc7
mov ecx, dword [esp + 0x48]
lea eax, [esp + 0x28]
push eax
mov eax, dword [esp + 0x48]
push dword [eax + 4]
push ebx
push edx
mov edx, dword [esp + 0x60]
push edi
lea edx, [edx + ebp]
call fcn.0041fd60
mov eax, dword [esp + 0x3c]
add esp, 0x14
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x421f4d
inc ebp
lea eax, [ebx - 1]
cmp ebp, eax
jl 0x421be0
mov ebp, 1
sub ebp, ebx
mov dword [esp + 0x44], ebp
cmp ebp, ebx
jge 0x421e65
mov ebx, dword [esp + 0xf8]
mov eax, ebp
lea edi, [esp + 0xe4]
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
add edi, ecx
cmp byte [edi], 0
jne 0x421e52
lea esi, [ecx*4]
test ebp, ebp
jns 0x421dbb
mov eax, dword [esp + esi + 0x130]
cmp eax, dword [esp + esi + 0xf4]
jl 0x421e52
test ecx, ecx
jne 0x421dd6
xor edx, edx
mov ecx, ebx
xor eax, eax
jmp 0x421e0e
push 0x4e01cc
push 0x12621
jmp 0x421844
cmp ecx, dword [esp + 0x1c]
jge 0x421dee
xor edx, edx
cmp byte [esp + 0x17], dl
sete dl
add edx, dword [esp + esi + 0x130]
jmp 0x421df5
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + esi + 0xf8]
xor eax, eax
cmp byte [esp + 0x17], al
sete al
add eax, dword [esp + esi + 0xf4]
sub ecx, eax
lea ebp, [esp + 0x90]
push ebp
push ecx
mov ecx, dword [esp + esi + 0x84]
push eax
call fcn.00420500
mov ebp, eax
add esp, 0xc
mov dword [esp + 0x18], ebp
mov dword [esp + 0x28], ebp
test ebp, ebp
jne 0x42185d
mov eax, dword [esp + esi + 0x7c]
mov ecx, dword [esp + 0x54]
sub ecx, dword [esp + esi + 0xd0]
mov ebp, dword [esp + 0x44]
mov byte [edi], 1
mov dword [eax + 0x14], ecx
inc ebp
mov dword [esp + 0x44], ebp
cmp ebp, dword [esp + 0x24]
jl 0x421d81
mov ebx, dword [esp + 0x24]
cmp dword [esp + 0x168], 0
je 0x421ec6
mov ebp, dword [esp + 0x48]
cmp word [ebp + 0x18], 0
jne 0x421ec6
mov ecx, dword [esp + 0x7c]
movzx eax, byte [ebp + 9]
cmp eax, dword [ecx + 0x14]
jg 0x421ec6
or edx, 0xffffffff
call fcn.004196f0
mov ecx, dword [esp + 0x7c]
mov edx, ebp
mov dword [esp + 0x28], eax
lea eax, [esp + 0x28]
push eax
call fcn.00420a60
mov ebp, dword [esp + 0x2c]
add esp, 4
test ebp, ebp
jne 0x421f11
mov ecx, dword [esp + 0x7c]
mov edx, ecx
push dword [ecx + 4]
mov ecx, dword [ecx + 0x34]
call fcn.0041f1f0
add esp, 4
mov ebp, eax
jmp 0x421f11
mov ecx, dword [esp + 0x38]
cmp byte [ecx + 0x11], 0
je 0x421f0d
cmp word [esp + 0x58], 0
jne 0x421f0d
xor esi, esi
test ebx, ebx
jle 0x421f0d
nop
mov eax, dword [esp + esi*4 + 0x7c]
lea edx, [esp + 0x28]
push edx
push dword [eax + 4]
mov eax, dword [eax + 0x38]
push 5
mov edx, dword [eax + 8]
bswap edx
call fcn.00418fa0
mov ecx, dword [esp + 0x44]
inc esi
add esp, 0xc
cmp esi, ebx
jl 0x421ee0
mov ebp, dword [esp + 0x28]
jmp 0x421f11
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov esi, ebx
cmp ebx, edi
jge 0x421865
nop
mov ecx, dword [esp + esi*4 + 0x60]
test ebp, ebp
jne 0x421f3a
push dword [ecx + 4]
mov edx, ecx
mov ecx, dword [ecx + 0x34]
call fcn.0041f1f0
add esp, 4
mov ebp, eax
inc esi
cmp esi, edi
jl 0x421f20
jmp 0x421865
lea eax, [edi + 4]
push eax
jmp 0x420e7d
mov ebp, dword [esp + 0x18]
jmp 0x421861
mov ebx, dword [esp + 0x24]
jmp 0x421865