Function at 0x46b360
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x1e0
mov esi, ecx
mov byte [esp + 0x1bc], 0xff
mov dword [esp + 0x1b8], 0xffffffff
mov dword [esp + 0x1b4], 0xffffffff
mov dword [esp + 0x1b0], 0xffffffff
mov ebx, dword [ecx + 0x74]
mov dword [esp + 0x74], 0
mov dword [esp + 0x68], ecx
jmp 0x46b3d4
call fcn.00444500
movzx eax, byte [esi + 0x44]
dec al
mov byte [esi + 0x44], al
movsx eax, al
mov ebx, dword [esi + eax*4 + 0x78]
mov eax, dword [esp + 8]
mov dword [esi + 0x74], ebx
test eax, eax
jne 0x46d947
cmp dword [ebx + 0x14], 0
jns 0x46b3e9
mov ecx, ebx
call fcn.0046ae40
test eax, eax
jne 0x46d915
cmp byte [ebx + 0xc], 0
mov dword [esp + 0x18], ebx
je 0x46b440
movzx eax, byte [esi + 0x44]
test al, al
jne 0x46b462
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 8]
jmp 0x46b413
mov eax, dword [eax + 0x18]
test eax, eax
je 0x46b4d0
cmp eax, esi
je 0x46b410
cmp byte [eax], 0
jne 0x46b410
mov ecx, dword [eax + 0x74]
cmp ecx, dword [esi + 0x74]
jne 0x46b410
jmp 0x46d919
mov eax, dword [ebx + 0x14]
lea eax, [eax + eax*2]
mov ecx, dword [esi + 0x14]
mov ecx, dword [ecx + 0x28]
add ecx, ecx
cmp eax, ecx
jle 0x46d915
movzx eax, byte [esi + 0x44]
test al, al
je 0x46d915
mov byte [esp + 0x43], al
movsx eax, al
mov edi, dword [esi + eax*4 + 0x74]
movzx eax, word [esi + eax*2 + 0x46]
mov dword [esp + 0x28], eax
mov ecx, dword [edi + 0x48]
mov eax, dword [ecx + 0x14]
test byte [ecx + 0x1c], 4
je 0x46b48e
mov edx, dword [eax + 0x1c]
cmp edx, dword [ecx + 0x18]
jae 0x46b528
mov edx, dword [eax + 0x2c]
mov dword [esp + 8], edx
test edx, edx
jne 0x46c1b0
mov edx, dword [eax + 0x9c]
cmp edx, dword [eax + 0xa8]
jbe 0x46b53d
call fcn.004501e0
test eax, eax
jne 0x46b900
jmp 0x46b54a
mov dword [esp + 0x130], 0
mov dword [esp + 0x80], 0
mov edi, dword [ebx + 0x34]
mov ecx, dword [ebx + 0x48]
mov eax, dword [ecx + 0x14]
test byte [ecx + 0x1c], 4
je 0x46b501
mov edx, dword [eax + 0x1c]
cmp edx, dword [ecx + 0x18]
jae 0x46b922
mov edx, dword [eax + 0x2c]
test edx, edx
jne 0x46d93e
mov edx, dword [eax + 0x9c]
cmp edx, dword [eax + 0xa8]
jbe 0x46b8e2
call fcn.004501e0
jmp 0x46b92d
cmp dword [eax + 0x68], 0
je 0x46b54a
call fcn.00446440
test eax, eax
jne 0x46b900
jmp 0x46b54a
call fcn.004505c0
test eax, eax
jne 0x46b900
cmp dword [edi + 0x14], 0
js 0x46b8e9
cmp byte [ebx + 2], 0
mov dword [esp + 0x54], edi
je 0x46b770
cmp byte [ebx + 0xc], 1
jne 0x46b770
movzx eax, word [ebx + 0x1c]
cmp ax, word [ebx + 0x18]
jne 0x46b770
cmp dword [edi + 4], 1
je 0x46b770
mov ecx, dword [esp + 0x28]
cmp word [edi + 0x18], cx
jne 0x46b770
mov edi, dword [ebx + 0x34]
mov dword [esp + 0x130], 0xffffffff
mov dword [esp + 0xd0], 0xffffffff
test ax, ax
je 0x46c851
mov ecx, edi
lea edx, [esp + 0x130]
push 0
push 0
lea eax, [esp + 0xd8]
push eax
call fcn.00451d30
add esp, 0xc
mov dword [esp + 8], eax
test eax, eax
jne 0x46c1b0
mov dword [esp + 0xc], edi
mov eax, dword [ebx + 0x24]
mov dword [esp + 0x180], eax
push eax
push ebx
call dword [ebx + 0x4c]
add esp, 8
mov word [esp + 0xb0], ax
lea eax, [esp + 0x104]
pcmpeqd xmm0, xmm0
movdqu xmmword [eax + 0x1c], xmm0
movdqu xmmword [eax + 0x10], xmm0
movdqu xmmword [eax], xmm0
mov ebx, dword [esp + 0x130]
mov ecx, dword [ebx + 0x34]
mov edi, dword [ebx + 0x38]
movzx esi, byte [ebx + 9]
test byte [ecx + 0x18], 0xc
mov dword [esp + 8], ecx
je 0x46b64b
lea eax, [edi + esi]
mov ecx, dword [esp + 8]
mov ecx, dword [ecx + 0x28]
sub ecx, esi
push ecx
push 0
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
mov ecx, dword [esp + 0x14]
add esp, 0xc
mov byte [edi + esi], 0xd
lea eax, [esi + 8]
mov dword [edi + esi + 1], 0
mov byte [edi + esi + 7], 0
mov edx, ecx
movzx ecx, byte [ecx + 0x29]
mov byte [edi + esi + 5], cl
movzx ecx, byte [edx + 0x28]
mov byte [edi + esi + 6], cl
mov ecx, dword [edx + 0x28]
sub ecx, eax
movzx ecx, cx
mov dword [ebx + 0x14], ecx
mov byte [ebx + 8], 1
mov byte [ebx + 0xa], 0
mov ecx, dword [ebx + 0x34]
mov word [ebx + 1], 0x101
mov dword [ebx + 0x4c], 0x44d450
mov dword [ebx + 0x50], 0x44d5e0
movzx edx, word [ecx + 0x1e]
mov word [ebx + 0xe], dx
movzx edx, word [ecx + 0x20]
mov word [ebx + 0x10], dx
movzx ecx, byte [ecx + 0x15]
mov byte [ebx + 0xb], cl
mov word [ebx + 0x12], ax
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0x24]
add eax, edi
mov dword [ebx + 0x3c], eax
lea eax, [edi + esi]
add eax, 8
mov dword [ebx + 0x40], eax
mov dword [ebx + 0x44], edi
mov byte [ebx + 0xc], 0
mov eax, dword [ecx + 0x24]
dec eax
mov word [ebx + 0x1a], ax
mov word [ebx + 0x18], 0
mov byte [ebx], 1
mov dword [esp + 0xf0], 1
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xf4], ecx
lea eax, [esp + 0x180]
mov dword [esp + 0xf8], eax
lea eax, [esp + 0xb0]
mov dword [esp + 0xfc], eax
mov eax, dword [ecx + 0x3c]
mov dword [esp + 0x100], eax
mov dword [esp + 0x118], 2
lea ecx, [esp + 0xf0]
xor edx, edx
push ebx
push 1
call fcn.0046e230
add esp, 8
mov dword [esp + 0x80], eax
test eax, eax
je 0x46d32b
mov dword [esp + 8], eax
mov ecx, dword [ebx + 0x48]
test byte [ecx + 0x1c], 0x20
mov esi, dword [esp + 0x68]
jne 0x46d589
call fcn.00444500
mov ebx, dword [esp + 0x18]
jmp 0x46c1b0
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 0x24]
call fcn.0044dc90
movzx ecx, byte [esi + 3]
mov dword [esp + 0x38], 0
mov dword [esp + 0xa0], 0xffffffff
mov dword [esp + 0xa4], 0xffffffff
mov dword [esp + 0xa8], 0xffffffff
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x80], xmm0
mov dword [esp + 0x90], 0xffffffff
mov dword [esp + 0x178], 0xffffffff
mov dword [esp + 0x17c], 0xffffffff
movdqa xmmword [esp + 0xd0], xmm0
mov dword [esp + 0xe0], 0xffffffff
movdqa xmmword [esp + 0x180], xmm0
mov dword [esp + 0x190], 0xffffffff
movdqa xmmword [esp + 0xb0], xmm0
mov dword [esp + 0xc0], 0xffffffff
movdqa xmmword [esp + 0x1c0], xmm0
mov dword [esp + 0x1d0], 0xffffffff
movdqa xmmword [esp + 0x150], xmm0
mov dword [esp + 0x160], 0xffffffff
mov word [esp + 0x1ac], 0xffff
mov dword [esp + 0x1a8], 0xffffffff
mov dword [esp + 0x1a4], 0xffffffff
mov dword [esp + 0x148], 0
mov byte [esp + 0x14c], 0
pxor xmm0, xmm0
movdqa xmmword [esp + 0xf0], xmm0
movdqa xmmword [esp + 0x100], xmm0
movdqa xmmword [esp + 0x110], xmm0
movdqa xmmword [esp + 0x120], xmm0
mov dword [esp + 0x7c], eax
test eax, eax
je 0x46b909
and ecx, 1
mov dword [esp + 0x24], ecx
movzx ecx, byte [edi + 0xc]
movzx eax, word [edi + 0x18]
lea ebx, [eax + ecx]
mov dword [esp + 0x5c], 0
cmp ebx, 2
jb 0x46baf9
mov edx, dword [esp + 0x28]
test edx, edx
je 0x46bae1
cmp ebx, edx
jne 0x46baeb
mov ebx, dword [esp + 0x24]
add edx, ebx
add edx, 0xfffffffe
jmp 0x46baec
call fcn.004505c0
jmp 0x46b92d
mov ecx, edi
call fcn.0046ae40
test eax, eax
je 0x46b554
nop dword [eax + eax]
mov dword [esp + 8], eax
jmp 0x46c1b0
mov dword [esp + 8], 7
mov ecx, dword [esp + 0x74]
test ecx, ecx
jne 0x46c1a2
jmp 0x46c1a7
cmp dword [eax + 0x68], 0
je 0x46b937
call fcn.00446440
test eax, eax
mov edx, eax
jne 0x46d93e
mov ecx, edi
lea edx, [esp + 0x130]
push 0
push dword [ebx + 4]
lea eax, [esp + 0x88]
push eax
call fcn.00451d30
add esp, 0xc
mov dword [esp + 0xf0], eax
mov ebx, dword [esp + 0x130]
test eax, eax
je 0x46ba18
cmp byte [edi + 0x11], 0
je 0x46b99a
mov edx, dword [esp + 0x80]
mov ecx, edi
lea eax, [esp + 0xf0]
push eax
mov eax, dword [esp + 0x1c]
push dword [eax + 4]
push 5
call fcn.00453030
add esp, 0xc
mov eax, dword [esp + 0xf0]
test eax, eax
jne 0x46d960
lea eax, [ebx + 0x1c]
mov edi, dword [esp + 0x18]
lea ecx, [edi + 0x1c]
movzx edx, byte [edi + 0xc]
add edx, edx
push edx
push ecx
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
lea eax, [ebx + 0x24]
lea ecx, [edi + 0x24]
movzx edx, byte [edi + 0xc]
shl edx, 2
push edx
push ecx
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
movzx eax, byte [edi + 0xc]
mov byte [ebx + 0xc], al
mov eax, dword [ebx + 0x38]
movzx edx, byte [eax]
and edx, 0xfffffff7
mov ecx, edi
call fcn.0044ff10
mov eax, dword [edi + 0x38]
movzx ecx, byte [edi + 9]
mov edx, dword [esp + 0x80]
bswap edx
mov dword [ecx + eax + 8], edx
mov dword [esi + 0x7c], ebx
mov byte [esi + 0x44], 1
mov dword [esi + 0x46], 0
mov dword [esi + 0x78], edi
xor eax, eax
jmp 0x46b3c9
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x18]
mov ecx, dword [esi + 0x38]
mov dword [esp + 8], ecx
movzx eax, byte [esi + 9]
mov dword [esp + 0xc], eax
movzx eax, word [ecx + eax + 5]
rol ax, 8
mov ecx, dword [esi + 0x34]
movzx eax, ax
mov dword [esp + 0x3c], ecx
mov ecx, dword [ecx + 0x28]
sub ecx, eax
mov edi, dword [ebx + 0x38]
lea edx, [edi + eax]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 8]
add eax, edx
mov edx, dword [ebx + 4]
mov dword [esp + 0x78], edx
push ecx
push eax
push dword [esp + 0x28]
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
cmp dword [esp + 0x78], 1
lea eax, [edi + 0x64]
cmovne eax, edi
mov edi, dword [esp + 8]
add edi, dword [esp + 0xc]
movzx ecx, word [esi + 0x12]
movzx edx, word [esi + 0x18]
lea ecx, [ecx + edx*2]
push ecx
push edi
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov byte [ebx], 0
mov ecx, ebx
call fcn.0044d210
test eax, eax
jne 0x46bac3
mov ecx, ebx
call fcn.0046ae40
test eax, eax
jne 0x46bac3
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x11], 0
je 0x46c665
mov ecx, ebx
call fcn.00452f50
mov dword [esp + 0xf0], eax
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x10]
cmp byte [edi + 0x11], 0
jne 0x46b971
jmp 0x46b99a
mov dword [esp + 0x5c], 0
jmp 0x46baf0
dec edx
mov dword [esp + 0x5c], edx
mov ebx, 2
sub ebx, dword [esp + 0x24]
mov edx, ebx
sub edx, ecx
add edx, dword [esp + 0x5c]
cmp edx, eax
jne 0x46bb0e
movzx edx, byte [edi + 9]
add edx, 8
jmp 0x46bb25
movzx eax, word [edi + 0x1a]
mov ecx, dword [edi + 0x40]
movzx esi, byte [ecx + edx*2]
shl esi, 8
movzx edx, byte [ecx + edx*2 + 1]
or edx, esi
and edx, eax
mov ecx, dword [edi + 0x34]
lea eax, [ebx + 1]
mov dword [esp + 0x78], eax
mov eax, dword [edi + 0x38]
mov dword [esp + 0x64], edx
mov dword [esp + 0x58], eax
mov eax, dword [eax + edx]
bswap eax
mov dword [esp + 0x20], eax
lea edx, [ebx*4]
mov eax, dword [esp + 0x5c]
lea edi, [eax - 1]
mov dword [esp + 0x34], edi
add eax, eax
mov dword [esp + 0x44], eax
mov dword [esp + 8], 0
mov dword [esp + 0x60], ebx
mov dword [esp + 0x3c], ecx
jmp 0x46bbb0
mov eax, dword [esp + 0x20]
bswap eax
mov dword [esp + 0x20], eax
movzx eax, byte [esi + 0xc]
mov edx, dword [esp + 0x1c]
sub edx, eax
mov ecx, esi
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x14]
call fcn.0046af70
add esp, 8
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0xc]
add edx, 0xfffffffc
mov ebx, edi
test eax, eax
mov ecx, dword [esp + 0x3c]
jne 0x46bd0a
mov dword [esp + 0xc], edx
lea eax, [esp + edx]
add eax, 0xa0
mov edx, dword [esp + 0x20]
push 0
push 0
push eax
call fcn.00469140
add esp, 0xc
mov dword [esp + 0x38], eax
test eax, eax
jne 0x46bd08
mov edi, dword [esp + ebx*4 + 0xa0]
cmp dword [edi + 0x14], 0
jns 0x46bbf9
mov ecx, edi
call fcn.0046ae40
mov dword [esp + 0x38], eax
test eax, eax
jne 0x46c095
movzx eax, word [edi + 0x18]
mov ecx, dword [esp + 8]
add ecx, eax
add ecx, 4
mov edi, ebx
sub edi, 1
jb 0x46bd9a
mov dword [esp + 8], ecx
mov esi, dword [esp + 0x54]
movzx eax, byte [esi + 0xc]
mov ecx, dword [esp + 0x34]
lea edx, [ecx + ebx]
test eax, eax
je 0x46bc60
movzx ecx, word [esi + 0x1c]
cmp edx, ecx
jne 0x46bc60
mov eax, dword [esi + 0x24]
mov dword [esp + ebx*4 + 0x174], eax
mov ecx, dword [eax]
bswap ecx
mov dword [esp + 0x20], ecx
push eax
push esi
call dword [esi + 0x4c]
add esp, 8
movzx eax, ax
mov dword [esp + ebx*4 + 0xac], eax
mov byte [esi + 0xc], 0
xor eax, eax
jmp 0x46bb9b
mov dword [esp + 0x1c], edx
movzx ecx, word [esi + 0x1a]
mov edx, dword [esi + 0x40]
add eax, eax
sub edx, eax
add edx, dword [esp + 0x44]
movzx eax, byte [edx + ebx*2 - 2]
shl eax, 8
movzx edx, byte [edx + ebx*2 - 1]
or edx, eax
mov eax, dword [esi + 0x38]
and edx, ecx
lea ecx, [eax + edx]
mov dword [esp + ebx*4 + 0x174], ecx
mov eax, dword [eax + edx]
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], ecx
push ecx
push esi
call dword [esi + 0x4c]
add esp, 8
movzx ecx, ax
mov eax, ecx
mov dword [esp + 0x10], ecx
mov dword [esp + ebx*4 + 0xac], ecx
mov eax, dword [esp + 0x3c]
test byte [eax + 0x18], 0xc
je 0x46bb70
mov eax, dword [esp + 0x14]
sub eax, dword [esi + 0x38]
mov ecx, dword [esp + 0x10]
add ecx, eax
mov edx, dword [esp + 0x3c]
cmp ecx, dword [edx + 0x28]
jg 0x46bb70
add eax, dword [esp + 0x7c]
push dword [esp + 0x10]
push dword [esp + 0x18]
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x14]
sub eax, dword [esi + 0x38]
add eax, dword [esp + 0x7c]
mov dword [esp + ebx*4 + 0x174], eax
jmp 0x46bb70
mov edi, ebx
mov esi, eax
lea eax, [edi*4 + 4]
push eax
push 0
lea eax, [esp + 0xa8]
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
mov eax, esi
add esp, 0xc
xor esi, esi
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0xf8]
test edi, edi
mov dword [esp + 8], eax
je 0x46c0b0
cmp dword [0x53c208], 0
je 0x46c089
mov eax, dword [0x53de88]
test eax, eax
je 0x46bd61
push eax
call dword [0x53c258]
add esp, 4
push edi
call dword [0x53c234]
add esp, 4
sub dword [0x53de30], eax
dec dword [0x53de54]
push edi
call dword [0x53c22c]
add esp, 4
mov eax, dword [0x53de88]
test eax, eax
je 0x46c0b0
push eax
call dword [0x53c260]
jmp 0x46c090
mov eax, dword [esp + 0x20]
mov dword [esp + 0xac], eax
add ecx, 3
and ecx, 0xfffffffc
mov edi, ecx
lea ecx, [ecx + ecx*2]
add ecx, ecx
mov eax, dword [esp + 0x3c]
add ecx, dword [eax + 0x24]
mov edx, ecx
sar edx, 0x1f
call fcn.00424d20
mov dword [esp + 0xf8], eax
test eax, eax
je 0x46c0a2
mov dword [esp + 8], eax
lea esi, [eax + edi*4]
mov dword [esp + 0xfc], esi
lea eax, [esi + edi*2]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0xf4], ecx
movzx eax, byte [ecx + 8]
mov dword [esp + 0x174], eax
shl eax, 2
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], ecx
movzx eax, byte [ecx + 2]
mov dword [esp + 0x30], eax
xor ebx, ebx
xor edx, edx
xor edi, edi
mov dword [esp + 0x44], esi
jmp 0x46be49
mov eax, dword [edx + ebx*4]
mov ecx, dword [ecx + 0x38]
mov ecx, dword [ecx + 8]
mov dword [eax], ecx
mov edx, dword [esp + 0x1c]
inc ebx
mov dword [esp + 0xf0], ebx
mov edi, dword [esp + 0x14]
lea eax, [edi + 1]
cmp edi, dword [esp + 0x60]
mov edi, eax
je 0x46c217
mov esi, dword [esp + edi*4 + 0xa0]
mov eax, dword [esi + 0x38]
mov dword [esp + 0xc], eax
movzx eax, byte [eax]
mov byte [esp + 0x10], al
mov ecx, dword [esp + 0x50]
mov ecx, dword [ecx + 0x38]
movzx eax, byte [esp + 0x10]
cmp al, byte [ecx]
jne 0x46c208
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], edx
movzx edx, word [esi + 0x18]
movzx ecx, word [esi + 0x1a]
mov dword [esp + 0x10], ecx
movzx edi, word [esi + 0x12]
add edi, dword [esp + 0xc]
mov eax, dword [esp + 0x44]
lea eax, [eax + ebx*2]
movzx ecx, byte [esi + 0xc]
mov dword [esp + 0x70], edx
add ecx, edx
add ecx, ecx
push ecx
push 0
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
cmp byte [esi + 0xc], 0
mov dword [esp + 0x34], esi
je 0x46bf80
movzx ecx, word [esi + 0x1c]
cmp word [esp + 0x70], cx
jb 0x46c66c
test ecx, ecx
je 0x46bf55
cmp cx, 1
mov dword [esp + 0x48], ecx
je 0x46bf23
and ecx, 0xfffffffe
nop
movzx edx, byte [edi]
shl edx, 8
movzx eax, byte [edi + 1]
or eax, edx
and eax, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
add eax, esi
mov edx, dword [esp + 8]
mov dword [edx + ebx*4], eax
movzx eax, byte [edi + 2]
shl eax, 8
movzx edx, byte [edi + 3]
or edx, eax
and edx, dword [esp + 0x10]
add edx, esi
mov eax, dword [esp + 8]
mov dword [eax + ebx*4 + 4], edx
add edi, 4
add ebx, 2
add ecx, 0xfffffffe
jne 0x46bee0
test byte [esp + 0x48], 1
mov edx, dword [esp + 0xc]
je 0x46bf4b
movzx eax, byte [edi]
shl eax, 8
movzx ecx, byte [edi + 1]
or ecx, eax
and ecx, dword [esp + 0x10]
add ecx, edx
mov eax, dword [esp + 8]
mov dword [eax + ebx*4], ecx
add edi, 2
inc ebx
mov esi, dword [esp + 0x34]
cmp byte [esi + 0xc], 0
je 0x46bf76
mov eax, dword [esp + 8]
lea ecx, [eax + ebx*4]
xor eax, eax
nop
mov edx, dword [esi + eax*4 + 0x24]
mov dword [ecx + eax*4], edx
inc eax
movzx edx, byte [esi + 0xc]
cmp eax, edx
jb 0x46bf60
add ebx, eax
mov edx, dword [esp + 0xc]
mov dword [esp + 0xf0], ebx
jmp 0x46bf84
mov edx, dword [esp + 0xc]
movzx eax, word [esi + 0x12]
add eax, edx
movzx ecx, word [esi + 0x18]
lea ecx, [eax + ecx*2]
cmp edi, ecx
jae 0x46bfcc
mov esi, dword [esp + 0x10]
nop dword [eax]
mov eax, ecx
movzx ecx, byte [edi]
shl ecx, 8
movzx edx, byte [edi + 1]
or edx, ecx
mov ecx, eax
and edx, esi
add edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [eax + ebx*4], edx
add edi, 2
inc ebx
mov dword [esp + 0xf0], ebx
cmp edi, ecx
jb 0x46bfa0
mov edi, dword [esp + 0x14]
mov dword [esp + edi*4 + 0x180], ebx
cmp edi, dword [esp + 0x60]
jae 0x46c080
cmp byte [esp + 0x30], 0
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x1c]
jne 0x46be3a
mov eax, dword [esp + edi*4 + 0xb0]
movzx eax, ax
mov word [esi + ebx*2], ax
mov ecx, dword [esp + 0x2c]
lea edi, [ecx + edx]
add edx, eax
mov dword [esp + 0x1c], edx
push eax
mov eax, dword [esp + 0x18]
push dword [esp + eax*4 + 0x17c]
push edi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x4c]
add edi, ecx
mov edx, dword [esp + 8]
mov dword [edx + ebx*4], edi
movzx eax, word [esi + ebx*2]
movzx ecx, cx
sub eax, ecx
mov word [esi + ebx*2], ax
mov ecx, dword [esp + 0x34]
cmp byte [ecx + 8], 0
je 0x46be1f
cmp ax, 3
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
ja 0x46be2e
nop
mov byte [ecx + edx], 0
inc edx
movzx eax, word [esi + ebx*2]
inc eax
mov word [esi + ebx*2], ax
cmp ax, 4
jb 0x46c060
jmp 0x46be2e
mov edx, dword [esp + 0x1c]
jmp 0x46be3a
push edi
call dword [0x53c22c]
add esp, 4
jmp 0x46c0b0
push dword [esp + 0xc]
push 0
mov esi, eax
jmp 0x46bd16
mov dword [esp + 8], 7
xor esi, esi
mov ebx, dword [esp + 0x18]
xor edi, edi
mov dword [esp + 0xc], esi
jmp 0x46c0cc
call fcn.00444500
inc edi
cmp dword [esp + 0x78], edi
je 0x46c128
mov eax, dword [esp + edi*4 + 0xa0]
test eax, eax
je 0x46c0c5
mov ecx, dword [eax + 0x48]
test byte [ecx + 0x1c], 0x20
je 0x46c0c0
mov edx, dword [ecx + 0x14]
dec dword [edx + 0x80]
mov eax, dword [edx + 0x90]
mov dword [ecx + 0x10], eax
mov dword [edx + 0x90], ecx
mov ebx, dword [edx + 0x40]
mov eax, dword [ecx + 0x18]
dec eax
mov esi, dword [edx + 0xac]
imul esi, eax
mul dword [edx + 0xa8]
add edx, esi
mov esi, dword [ebx]
push dword [ecx + 4]
push edx
push eax
push ebx
mov ebx, dword [esp + 0x28]
call dword [esi + 0x48]
mov esi, dword [esp + 0x1c]
add esp, 0x10
jmp 0x46c0c5
test esi, esi
jle 0x46c196
xor edi, edi
jmp 0x46c13a
call fcn.00444500
inc edi
cmp esi, edi
je 0x46c196
mov eax, dword [esp + edi*4 + 0x80]
test eax, eax
je 0x46c135
mov ecx, dword [eax + 0x48]
test byte [ecx + 0x1c], 0x20
je 0x46c130
mov edx, dword [ecx + 0x14]
dec dword [edx + 0x80]
mov eax, dword [edx + 0x90]
mov dword [ecx + 0x10], eax
mov dword [edx + 0x90], ecx
mov ebx, dword [edx + 0x40]
mov eax, dword [ecx + 0x18]
dec eax
mov esi, dword [edx + 0xac]
imul esi, eax
mul dword [edx + 0xa8]
add edx, esi
mov esi, dword [ebx]
push dword [ecx + 4]
push edx
push eax
push ebx
mov ebx, dword [esp + 0x28]
call dword [esi + 0x48]
mov esi, dword [esp + 0x1c]
add esp, 0x10
jmp 0x46c135
mov ecx, dword [esp + 0x74]
mov esi, dword [esp + 0x68]
test ecx, ecx
je 0x46c1a7
call fcn.004443e0
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x74], eax
nop
mov byte [ebx + 0xc], 0
mov ecx, dword [ebx + 0x48]
test byte [ecx + 0x1c], 0x20
je 0x46b3b0
mov edx, dword [ecx + 0x14]
dec dword [edx + 0x80]
mov eax, dword [edx + 0x90]
mov dword [ecx + 0x10], eax
mov dword [edx + 0x90], ecx
mov edi, dword [edx + 0x40]
mov eax, dword [ecx + 0x18]
dec eax
mov esi, dword [edx + 0xac]
imul esi, eax
mul dword [edx + 0xa8]
add edx, esi
mov esi, dword [edi]
push dword [ecx + 4]
push edx
push eax
push edi
call dword [esi + 0x48]
mov esi, dword [esp + 0x78]
add esp, 0x10
jmp 0x46b3b5
push 0x52b213
push 0x12485
jmp 0x46c8b7
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x28]
mov ecx, dword [esp + 0x4c]
add eax, ecx
add eax, 0xfffffff4
mov dword [esp + 0x70], eax
xor eax, eax
xor edx, edx
jmp 0x46c25f
mov eax, dword [esp + 0x10]
mov dword [esp + edx*4 + 0xd0], eax
lea ecx, [edx + 1]
mov eax, dword [esp + 0xc]
inc eax
cmp edx, dword [esp + 0x60]
mov edx, ecx
je 0x46c30c
mov edi, dword [esp + edx*4 + 0xa0]
mov ecx, dword [edi + 0x3c]
mov dword [esp + eax*4 + 0x100], ecx
mov esi, dword [esp + edx*4 + 0x180]
mov dword [esp + eax*4 + 0x118], esi
mov ecx, 0
test eax, eax
je 0x46c294
lea ecx, [eax - 1]
cmp esi, dword [esp + eax*4 + 0x114]
cmovne ecx, eax
cmp byte [esp + 0x30], 0
mov dword [esp + 0x10], esi
jne 0x46c2b8
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x3c]
mov dword [esp + ecx*4 + 0x104], eax
lea eax, [esi + 1]
mov dword [esp + ecx*4 + 0x11c], eax
inc ecx
mov dword [esp + 0xc], ecx
mov ebx, dword [esp + 0x70]
sub ebx, dword [edi + 0x14]
mov dword [esp + edx*4 + 0xb0], ebx
cmp byte [edi + 0xc], 0
je 0x46c240
xor esi, esi
mov dword [esp + 8], edx
nop word [eax + eax]
push dword [edi + esi*4 + 0x24]
push edi
call dword [edi + 0x4c]
mov edx, dword [esp + 0x10]
add esp, 8
movzx eax, ax
add ebx, eax
add ebx, 2
mov dword [esp + edx*4 + 0xb0], ebx
inc esi
movzx eax, byte [edi + 0xc]
cmp esi, eax
jb 0x46c2e0
jmp 0x46c240
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0xfc]
xor edi, edi
mov eax, dword [esp + 0x78]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ecx
mov ebx, dword [esp + edi*4 + 0xb0]
cmp ebx, dword [esp + 0x70]
mov dword [esp + 8], edi
jle 0x46c418
lea eax, [edi + 1]
mov dword [esp + 0xc], eax
lea eax, [edi + 2]
mov dword [esp + 0x1c], eax
jmp 0x46c37c
movzx eax, ax
add eax, 2
nop word [eax + eax]
mov edi, dword [esp + 8]
add dword [esp + edi*4 + 0xb4], eax
mov dword [esp + edi*4 + 0xd0], esi
cmp ebx, dword [esp + 0x70]
jle 0x46c41f
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x2c]
jl 0x46c3a9
cmp edi, 4
jae 0x46c8a6
mov dword [esp + edi*4 + 0xb4], 0
mov dword [esp + edi*4 + 0xd4], ecx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
mov edi, dword [esp + edi*4 + 0xd0]
lea esi, [edi - 1]
movzx eax, word [edx + edi*2 - 2]
test ax, ax
jne 0x46c3d3
lea ecx, [esp + 0xf0]
mov edx, esi
call fcn.0046e450
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
movzx eax, ax
add eax, 2
sub ebx, eax
cmp byte [esp + 0x30], 0
jne 0x46c360
xor eax, eax
cmp edi, ecx
jge 0x46c360
movzx eax, word [edx + edi*2]
test ax, ax
jne 0x46c351
lea ecx, [esp + 0xf0]
mov edx, edi
call fcn.0046e450
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
jmp 0x46c351
mov esi, dword [esp + edi*4 + 0xd0]
mov dword [esp + edi*4 + 0xb0], ebx
lea eax, [edi + 1]
mov dword [esp + 0xc], eax
cmp esi, ecx
jl 0x46c44f
jmp 0x46c4f3
movzx eax, ax
add eax, 2
mov edi, dword [esp + 0xc]
sub dword [esp + edi*4 + 0xb0], eax
cmp ecx, esi
je 0x46c4f3
movzx eax, word [edx + esi*2]
test ax, ax
jne 0x46c46e
lea ecx, [esp + 0xf0]
mov edx, esi
call fcn.0046e450
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
movzx eax, ax
add ebx, eax
add ebx, 2
cmp ebx, dword [esp + 0x70]
jg 0x46c4c0
inc esi
mov edi, dword [esp + 8]
mov dword [esp + edi*4 + 0xb0], ebx
mov dword [esp + edi*4 + 0xd0], esi
cmp byte [esp + 0x30], 0
jne 0x46c439
xor eax, eax
cmp esi, ecx
jge 0x46c43c
movzx eax, word [edx + esi*2]
test ax, ax
jne 0x46c436
lea ecx, [esp + 0xf0]
mov edx, esi
call fcn.0046e450
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
jmp 0x46c436
mov eax, dword [esp + 8]
test eax, eax
je 0x46c4d1
mov eax, dword [esp + eax*4 + 0xcc]
jmp 0x46c4d3
xor eax, eax
mov ebx, dword [esp + 0x18]
cmp esi, eax
jle 0x46d69b
mov esi, dword [esp + 0xc]
mov eax, esi
cmp esi, dword [esp + 0x2c]
mov edi, esi
jl 0x46c32c
jmp 0x46c4fb
mov eax, dword [esp + 0xc]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
dec eax
mov dword [esp + 0x6c], eax
mov esi, eax
jmp 0x46c520
mov esi, dword [esp + 0x1c]
cmp edi, eax
mov ebx, dword [esp + 0x18]
jle 0x46c87c
test esi, esi
jle 0x46c67b
mov ebx, dword [esp + esi*4 + 0xac]
mov eax, dword [esp + esi*4 + 0xb0]
mov dword [esp + 8], eax
mov ecx, dword [esp + esi*4 + 0xcc]
mov edi, esi
mov esi, ecx
sub esi, dword [esp + 0x30]
cmp word [edx + esi*2], 0
mov dword [esp + 0x48], edi
jne 0x46c56e
mov edi, ecx
lea ecx, [esp + 0xf0]
mov edx, esi
call fcn.0046e450
mov ecx, edi
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x14]
lea eax, [edi - 1]
mov dword [esp + 0x1c], eax
xor eax, eax
cmp edi, dword [esp + 0x6c]
sete al
add eax, eax
add eax, 0xfffffffe
mov dword [esp + 0x44], eax
jmp 0x46c5bd
mov esi, dword [esp + 0x10]
movzx eax, word [edx + esi*2]
movzx ecx, word [edx + edi*2]
add eax, 2
sub ebx, ecx
add ebx, 0xfffffffe
mov ecx, dword [esp + 0x1c]
mov dword [esp + ecx*4 + 0xd0], edi
dec esi
mov dword [esp + 8], eax
cmp dword [esp + 0xc], 1
mov ecx, edi
jle 0x46c638
mov dword [esp + 0x10], esi
lea edi, [ecx - 1]
cmp word [edx + ecx*2 - 2], 0
jne 0x46c5ec
mov dword [esp + 0x34], edi
mov edi, ecx
lea ecx, [esp + 0xf0]
mov edx, dword [esp + 0x34]
call fcn.0046e450
mov ecx, edi
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 8]
test esi, esi
mov dword [esp + 0xc], ecx
je 0x46c590
cmp byte [esp + 0x24], 0
jne 0x46c634
mov ecx, esi
mov esi, dword [esp + 0x10]
movzx eax, word [edx + esi*2]
mov dword [esp + 8], ecx
add eax, ecx
add eax, 2
movzx ecx, word [edx + edi*2]
mov edx, dword [esp + 0x44]
add edx, ebx
sub edx, ecx
cmp eax, edx
mov edx, dword [esp + 0x14]
jle 0x46c59f
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 8]
jmp 0x46c638
mov edi, ecx
mov eax, esi
mov ecx, dword [esp + 0x48]
mov dword [esp + ecx*4 + 0xb0], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0xb0], ebx
xor eax, eax
cmp ecx, 2
jl 0x46c510
mov eax, dword [esp + ecx*4 + 0xc8]
jmp 0x46c510
xor eax, eax
jmp 0x46baca
push 0x52b213
push 0x1249d
jmp 0x46c8b7
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x38]
movzx eax, byte [eax]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x2c], 0
jle 0x46c8d7
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x5c]
mov dword [esp + 0x28], eax
xor esi, esi
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x20], eax
xor ebx, ebx
jmp 0x46c6c4
test eax, eax
jne 0x46bd2a
inc ebx
cmp dword [esp + 0x2c], ebx
je 0x46d533
mov dword [esp + 0x130], 0xffffffff
cmp ebx, dword [esp + 0x60]
jbe 0x46c785
mov eax, 1
cmp byte [esp + 0x24], 0
mov edi, dword [esp + 0x3c]
jne 0x46c6f0
mov eax, dword [esp + 0xac]
mov ecx, edi
lea edx, [esp + 0x130]
push 0
push eax
lea eax, [esp + 0xb4]
push eax
call fcn.00451d30
add esp, 0xc
mov dword [esp + 0x38], eax
test eax, eax
jne 0x46bd2a
mov ecx, dword [esp + 0x130]
mov dword [esp + 8], ecx
mov edx, dword [esp + 0x10]
call fcn.0044ff10
mov ecx, dword [esp + 8]
mov dword [esp + ebx*4 + 0x80], ecx
inc esi
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x20]
mov dword [esp + ebx*4 + 0x180], eax
cmp byte [edi + 0x11], 0
je 0x46c7d6
mov edx, dword [ecx + 4]
mov ecx, edi
lea eax, [esp + 0x38]
push eax
mov eax, dword [esp + 0x58]
push dword [eax + 4]
push 5
call fcn.00453030
add esp, 0xc
mov eax, dword [esp + 0x38]
test eax, eax
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
je 0x46c6b9
jmp 0x46bd2a
mov eax, dword [esp + ebx*4 + 0xa0]
mov dword [esp + ebx*4 + 0x80], eax
mov dword [esp + ebx*4 + 0xa0], 0
mov dword [esp + 8], eax
mov ecx, dword [eax + 0x48]
mov eax, dword [ecx + 0x14]
test byte [ecx + 0x1c], 4
je 0x46c7ba
mov edx, dword [eax + 0x1c]
cmp edx, dword [ecx + 0x18]
mov edx, dword [esp + 0x14]
jae 0x46c7e3
mov edi, dword [eax + 0x2c]
test edi, edi
jne 0x46c805
mov edx, dword [eax + 0x9c]
cmp edx, dword [eax + 0xa8]
jbe 0x46c7f6
call fcn.004501e0
jmp 0x46c7fb
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
jmp 0x46c6b9
cmp dword [eax + 0x68], 0
je 0x46c803
call fcn.00446440
mov edx, dword [esp + 0x14]
mov edi, eax
jmp 0x46c805
call fcn.004505c0
mov edi, eax
mov edx, dword [esp + 0x14]
jmp 0x46c805
xor edi, edi
mov dword [esp + 0x38], edi
inc esi
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x48]
movsx eax, word [eax + 0x1e]
xor ecx, ecx
cmp dword [esp + 0x28], ebx
sete cl
inc ecx
cmp ecx, eax
mov eax, edi
je 0x46c6b1
test eax, eax
jne 0x46c6b1
push 0x52b213
push 0x1256e
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004287c0
add esp, 0x14
jmp 0x46c8cd
push 0x52b213
push 0x122de
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004287c0
add esp, 0x14
mov dword [esp + 8], 0xb
jmp 0x46c1b0
push 0x52b213
push 0x1254d
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004287c0
add esp, 0x14
xor esi, esi
mov eax, 0xb
jmp 0x46bd2e
mov dword [esp + edi*4 + 0xb0], ebx
push 0x52b213
push 0x12502
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004287c0
add esp, 0x14
xor esi, esi
mov eax, 0xb
jmp 0x46bd2a
xor eax, eax
mov dword [esp + 0xec], 0
mov esi, dword [esp + 0x60]
mov ebx, dword [esp + 0x58]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xac], ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + eax*4 + 0x7c]
mov ecx, dword [eax + 4]
bswap ecx
mov edi, dword [esp + 0x64]
mov dword [ebx + edi], ecx
test byte [esp + 0x10], 8
jne 0x46c940
mov ecx, dword [esp + 0xc]
cmp dword [esp + 0x78], ecx
je 0x46c940
lea ecx, [esp + 0xa0]
lea edx, [esp + 0x80]
cmovl ecx, edx
mov edx, dword [esp + 0x14]
mov ecx, dword [ecx + esi*4]
mov eax, dword [eax + 0x38]
mov ecx, dword [ecx + 0x38]
mov ecx, dword [ecx + 8]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x11], 0
je 0x46cafb
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x28], eax
test eax, eax
jle 0x46cafb
xor eax, eax
cmp byte [esp + 0x30], 0
sete al
mov dword [esp + 0x44], eax
mov ebx, dword [esp + 0x80]
movzx eax, byte [ebx + 0xc]
movzx esi, word [ebx + 0x18]
add esi, eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x24], eax
xor edi, edi
mov dword [esp + 0x34], 0
mov dword [esp + 0x1c], ebx
xor eax, eax
jmp 0x46c9bc
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x46d68e
mov eax, dword [esp + 0x10]
inc eax
cmp eax, dword [esp + 0x28]
mov esi, dword [esp + 8]
je 0x46cafb
mov ecx, eax
mov dword [esp + 0x10], eax
cmp eax, esi
jne 0x46ca16
mov eax, dword [esp + 0x44]
add eax, esi
mov dword [esp + 0x20], eax
lea eax, [esp + 0xa4]
lea ecx, [eax + edi*4]
lea eax, [esp + 0x84]
lea edx, [eax + edi*4]
mov dword [esp + 8], esi
nop dword [eax + eax]
inc edi
cmp edi, dword [esp + 0xc]
mov esi, ecx
cmovl esi, edx
mov ebx, dword [esi]
movzx eax, word [ebx + 0x18]
add eax, dword [esp + 0x20]
movzx esi, byte [ebx + 0xc]
add esi, eax
add ecx, 4
add edx, 4
cmp dword [esp + 8], esi
je 0x46c9f0
mov dword [esp + 8], esi
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
mov esi, dword [eax + edx*4]
mov ecx, dword [esp + 0x34]
cmp edx, dword [esp + ecx*4 + 0xd0]
jne 0x46ca5b
mov eax, dword [esp + ecx*4 + 0x84]
mov dword [esp + 0x1c], eax
lea eax, [ecx + 1]
mov dword [esp + 0x34], eax
cmp byte [esp + 0x30], 0
mov edx, dword [esp + 0x14]
je 0x46c9a9
cmp edi, dword [esp + 0xc]
jl 0x46ca65
jmp 0x46ca83
mov edx, dword [esp + 0x14]
cmp edi, dword [esp + 0xc]
jge 0x46ca83
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 4]
cmp eax, dword [esp + edi*4 + 0x1c0]
jne 0x46ca83
cmp esi, dword [ebx + 0x38]
jb 0x46ca83
cmp esi, dword [ebx + 0x3c]
jb 0x46c9a9
cmp byte [esp + 0x174], 0
jne 0x46caaf
mov edx, dword [esi]
bswap edx
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x38]
push eax
mov eax, dword [esp + 0x20]
push dword [eax + 4]
push 5
call fcn.00453030
mov edx, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [esp + 0x10]
movzx eax, word [edx + eax*2]
test ax, ax
jne 0x46cad0
lea ecx, [esp + 0xf0]
mov edx, dword [esp + 0x10]
call fcn.0046e450
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
cmp ax, word [ecx + 0x10]
jbe 0x46c99d
mov ecx, dword [esp + 0x1c]
mov edx, ebx
lea eax, [esp + 0x38]
push eax
push esi
call fcn.00453430
mov edx, dword [esp + 0x1c]
add esp, 8
jmp 0x46c99d
cmp dword [esp + 0xc], 2
jl 0x46cd51
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x120]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x124]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x128]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0xc]
dec eax
mov dword [esp + 0x50], eax
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x10], eax
mov edi, dword [esp + ebx*4 + 0x80]
mov ecx, dword [esp + ebx*4 + 0xd0]
mov eax, dword [esp + 0x24]
mov esi, dword [eax + ecx*4]
mov dword [esp + 0x34], ecx
movzx eax, word [edx + ecx*2]
mov ecx, dword [esp + 0x4c]
add ecx, eax
mov dword [esp + 0x1c], ecx
cmp byte [edi + 8], 0
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x10]
lea ecx, [ecx + edx]
mov dword [esp + 0x20], ecx
je 0x46cc1f
mov dword [esp + 0x28], edi
cmp byte [esp + 0x30], 0
je 0x46cc33
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x130], xmm0
mov dword [esp + 0x144], 0xffffffff
mov dword [esp + 0x140], 0xffffffff
lea eax, [esp + 0x130]
push eax
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x38]
push dword [eax + edi*4 - 4]
mov eax, dword [esp + 0x30]
push eax
call dword [eax + 0x50]
add esp, 0xc
mov edx, dword [esp + 0x130]
mov eax, dword [esp + 0x134]
mov ecx, 0x7f
cmp ecx, edx
mov ecx, 0
sbb ecx, eax
mov esi, dword [esp + 0x20]
lea ecx, [esi + 4]
jb 0x46cc59
mov byte [ecx], dl
mov eax, 1
jmp 0x46cc8c
mov eax, dword [edi + 0x38]
mov dword [esp + 8], esi
mov ecx, dword [esi]
mov dword [eax + 8], ecx
mov edx, edi
mov edi, dword [esp + 0x34]
jmp 0x46cca4
add esi, 0xfffffffc
cmp ax, 4
mov edi, dword [esp + 0x34]
mov dword [esp + 8], esi
jne 0x46cca0
push esi
mov eax, dword [esp + 0x58]
push eax
call dword [eax + 0x4c]
add esp, 8
movzx eax, ax
mov dword [esp + 0x1c], eax
jmp 0x46cca0
mov esi, 0x3fff
cmp esi, edx
mov esi, 0
sbb esi, eax
jb 0x46cc7f
mov eax, edx
shr eax, 7
or al, 0x80
mov byte [ecx], al
and dl, 0x7f
mov byte [ecx + 1], dl
mov eax, 2
jmp 0x46cc88
push eax
call fcn.00468d10
add esp, 4
mov esi, dword [esp + 0x20]
dec edi
add eax, 4
mov dword [esp + 0x1c], eax
mov dword [esp + 8], esi
mov dword [esp + 0x20], 0
mov edx, dword [esp + 0x28]
xor eax, eax
cmp dword [esp + 0x44], edi
jg 0x46cce8
mov eax, 1
cmp dword [esp + 0x2c], edi
jg 0x46cce8
mov eax, 2
cmp dword [esp + 0x48], edi
jg 0x46cce8
mov eax, 3
cmp dword [esp + 0x64], edi
jg 0x46cce8
mov eax, 4
cmp dword [esp + 0x58], edi
jg 0x46cce8
xor ecx, ecx
cmp dword [esp + 0x6c], edi
setg cl
mov eax, 6
sub eax, ecx
mov eax, dword [esp + eax*4 + 0x100]
mov edi, dword [esp + 8]
cmp eax, edi
mov esi, dword [esp + 0x1c]
jb 0x46cd06
lea ecx, [edi + esi]
cmp eax, ecx
jb 0x46d66b
mov eax, dword [esp + 0x5c]
mov dword [esp + 8], edi
mov edi, edx
lea edx, [eax + ebx]
mov ecx, dword [esp + 0x54]
lea eax, [esp + 0x38]
push eax
push dword [edi + 4]
push dword [esp + 0x28]
push esi
push dword [esp + 0x18]
call fcn.0046b090
add esp, 0x14
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x46d68e
mov eax, dword [esp + 0x10]
add eax, esi
inc ebx
cmp dword [esp + 0x50], ebx
mov edx, dword [esp + 0x14]
jne 0x46cb60
mov ebx, 1
mov esi, dword [esp + 0xc]
sub ebx, esi
cmp ebx, esi
lea ecx, [esp + 0x38]
movzx eax, byte [esp + 0x43]
jge 0x46d46e
cmp byte [esp + 0x30], 0
mov edi, ecx
mov ecx, 0
sete cl
mov dword [esp + 0x16c], ecx
mov ecx, edi
mov edi, dword [esp + 0xf0]
mov dword [esp + 0x19c], edi
mov edi, dword [esp + 0xf4]
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0xd0]
mov dword [esp + 0x198], edi
mov edi, dword [esp + 0xf8]
mov dword [esp + 8], edi
jmp 0x46ce1b
lea ecx, [esp + 0xf0]
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
push esi
push dword [esp + 0x34]
call fcn.0046e230
mov edx, dword [esp + 0x1c]
add esp, 8
test eax, eax
jne 0x46d6aa
mov ecx, dword [esp + 0x1a0]
mov byte [esp + ecx + 0x148], 1
mov eax, dword [esp + 0x70]
sub eax, dword [esp + ecx*4 + 0xb0]
mov dword [esi + 0x14], eax
lea ecx, [esp + 0x38]
movzx eax, byte [esp + 0x43]
mov esi, dword [esp + 0xc]
mov ebx, dword [esp + 0x170]
inc ebx
cmp ebx, esi
je 0x46d46e
mov edi, ebx
neg edi
cmovs edi, ebx
cmp byte [esp + edi + 0x148], 0
jne 0x46ce12
test ebx, ebx
js 0x46ce4c
jne 0x46ce61
mov dword [esp + 0x170], ebx
xor ebx, ebx
mov dword [esp + 0x2c], 0
mov eax, dword [esp + 0x198]
jmp 0x46cea5
mov eax, dword [esp + edi*4 + 0x17c]
cmp eax, dword [esp + edi*4 + 0xcc]
movzx eax, byte [esp + 0x43]
jl 0x46ce12
lea eax, [edi - 1]
mov ecx, dword [esp + 0x19c]
mov dword [esp + 0x2c], ecx
cmp edi, dword [esp + 0x60]
jg 0x46ce87
mov ecx, dword [esp + eax*4 + 0x180]
add ecx, dword [esp + 0x16c]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x170], ebx
mov ebx, dword [esp + eax*4 + 0xd0]
add ebx, dword [esp + 0x16c]
mov eax, dword [esp + edi*4 + 0xd0]
sub eax, ebx
mov dword [esp + 0x30], eax
mov ecx, dword [esp + edi*4 + 0x80]
mov eax, dword [ecx + 0x38]
mov dword [esp + 0x48], eax
movzx eax, byte [ecx + 9]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x30]
add eax, eax
add eax, dword [ecx + 0x40]
mov dword [esp + 0x64], eax
movzx eax, word [ecx + 0x18]
mov dword [esp + 0x10], eax
movzx eax, byte [ecx + 0xc]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x2c]
cmp eax, ebx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1a0], edi
mov dword [esp + 0x20], ebx
jge 0x46d004
mov ebx, eax
mov eax, dword [ecx + 0x34]
mov eax, dword [eax + 0x28]
mov edi, dword [esp + 0x48]
add eax, edi
mov dword [esp + 0x1c], eax
movzx eax, byte [ecx + 0xa]
add eax, dword [esp + 0x6c]
add eax, edi
add eax, 8
mov dword [esp + 0x34], eax
mov dword [esp + 0x28], 0
xor ecx, ecx
mov edi, ebx
mov dword [esp + 0x50], 0
jmp 0x46cf51
add esi, dword [esp + 0x28]
inc dword [esp + 0x50]
mov ecx, ebx
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0xc]
inc edi
cmp dword [esp + 0x20], edi
je 0x46cfaa
mov ebx, dword [esp + 8]
mov ebx, dword [ebx + edi*4]
cmp ebx, dword [esp + 0x34]
jb 0x46cf4a
cmp ebx, dword [esp + 0x1c]
jae 0x46cf4a
movzx esi, word [edx + edi*2]
lea eax, [ebx + esi]
mov dword [esp + 0x44], eax
cmp ecx, eax
je 0x46cf38
test ecx, ecx
je 0x46cf94
sub ecx, dword [esp + 0x48]
movzx eax, word [esp + 0x28]
movzx edx, cx
mov ecx, dword [esp + 0x24]
push eax
call fcn.0046db20
mov edx, dword [esp + 0x18]
add esp, 4
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x1c]
jbe 0x46cf3c
xor ecx, ecx
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
jmp 0x46cfd9
test ecx, ecx
mov ebx, dword [esp + 0x24]
je 0x46cfc9
sub ecx, dword [esp + 0x48]
movzx eax, word [esp + 0x28]
movzx edx, cx
mov ecx, ebx
push eax
call fcn.0046db20
add esp, 4
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x50]
cmp ecx, edx
jg 0x46d770
mov eax, dword [ebx + 0x40]
mov esi, ecx
lea ecx, [eax + ecx*2]
mov ebx, edx
add edx, edx
push edx
push ecx
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
add esp, 0xc
mov eax, ebx
sub eax, esi
mov dword [esp + 0x4c], eax
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x10]
add esi, eax
add esi, dword [esp + 0x58]
mov eax, dword [esp + 0x30]
add ebx, eax
cmp esi, ebx
jle 0x46d0cb
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x34]
mov edi, dword [ecx + 0x38]
mov eax, dword [eax + 0x28]
add eax, edi
mov dword [esp + 0x1c], eax
movzx eax, byte [ecx + 9]
movzx ecx, byte [ecx + 0xa]
add ecx, eax
mov dword [esp + 0x58], edi
lea eax, [edi + ecx]
add eax, 8
mov dword [esp + 0x34], eax
mov dword [esp + 0x28], 0
xor ecx, ecx
mov dword [esp + 0x50], 0
mov dword [esp + 0x10], esi
jmp 0x46d076
add esi, dword [esp + 0x28]
inc dword [esp + 0x50]
mov ecx, edi
mov dword [esp + 0x28], esi
inc ebx
mov esi, dword [esp + 0x10]
cmp ebx, esi
jge 0x46d0d1
mov esi, dword [esp + 8]
mov edi, dword [esi + ebx*4]
cmp edi, dword [esp + 0x34]
jb 0x46d06d
cmp edi, dword [esp + 0x1c]
jae 0x46d06d
movzx esi, word [edx + ebx*2]
lea eax, [edi + esi]
mov dword [esp + 0x44], eax
cmp ecx, eax
je 0x46d05f
test ecx, ecx
je 0x46d0b9
sub ecx, dword [esp + 0x58]
movzx eax, word [esp + 0x28]
movzx edx, cx
mov ecx, dword [esp + 0x24]
push eax
call fcn.0046db20
mov edx, dword [esp + 0x18]
add esp, 4
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x1c]
jbe 0x46d063
xor eax, eax
mov ebx, dword [esp + 0x18]
jmp 0x46d0fa
mov ebx, dword [esp + 0x18]
jmp 0x46d0fe
test ecx, ecx
je 0x46d0f2
sub ecx, dword [esp + 0x58]
movzx eax, word [esp + 0x28]
movzx edx, cx
mov ecx, dword [esp + 0x24]
push eax
call fcn.0046db20
mov edx, dword [esp + 0x18]
add esp, 4
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x50]
sub dword [esp + 0x4c], eax
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x6c]
movzx eax, byte [ecx + esi + 5]
shl eax, 8
movzx ecx, byte [ecx + esi + 6]
add eax, ecx
dec eax
movzx eax, ax
add eax, esi
inc eax
mov dword [esp + 0x130], eax
cmp eax, dword [esp + 0x64]
jb 0x46d296
mov ecx, dword [esp + 0x24]
cmp eax, dword [ecx + 0x3c]
ja 0x46d296
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x20]
sub esi, edi
jle 0x46d1a4
mov eax, dword [esp + 0x30]
cmp esi, eax
cmovge esi, eax
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x40]
mov dword [esp + 0x10], edx
lea eax, [edx + esi*2]
mov ecx, dword [esp + 0x4c]
add ecx, ecx
push ecx
push edx
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
add esp, 0xc
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x64]
lea eax, [esp + 0xf0]
push eax
push esi
push edi
push dword [esp + 0x1c]
lea eax, [esp + 0x140]
push eax
call fcn.0046e480
mov edx, dword [esp + 0x28]
add esp, 0x14
test eax, eax
jne 0x46d296
add dword [esp + 0x4c], esi
mov ebx, dword [esp + 0x24]
movzx eax, byte [ebx + 0xc]
test al, al
je 0x46d255
xor edi, edi
jmp 0x46d1c4
inc edi
movzx ecx, al
cmp edi, ecx
jae 0x46d255
movzx esi, word [ebx + edi*2 + 0x1c]
add esi, dword [esp + 0x2c]
mov ecx, esi
sub ecx, dword [esp + 0x20]
js 0x46d1b8
cmp ecx, dword [esp + 0x30]
jge 0x46d1b8
mov eax, ebx
lea ebx, [ecx + ecx]
add ebx, dword [eax + 0x40]
mov eax, dword [esp + 0x4c]
sub eax, ecx
jle 0x46d1ff
lea ecx, [ebx + 2]
add eax, eax
push eax
push ebx
push ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov edx, dword [esp + 0x20]
add esp, 0xc
cmp word [edx + esi*2], 0
jne 0x46d214
lea ecx, [esp + 0xf0]
mov edx, esi
call fcn.0046e450
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x64]
lea eax, [esp + 0xf0]
push eax
push 1
push esi
push ebx
lea eax, [esp + 0x140]
push eax
call fcn.0046e480
add esp, 0x14
test eax, eax
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
jne 0x46d296
inc dword [esp + 0x4c]
mov ebx, dword [esp + 0x24]
movzx eax, byte [ebx + 0xc]
jmp 0x46d1b8
mov edi, dword [esp + 0x4c]
lea eax, [edi + edi]
add eax, dword [ebx + 0x40]
mov ecx, ebx
mov ebx, dword [esp + 0x30]
sub ebx, edi
add edi, dword [esp + 0x20]
mov edx, dword [esp + 0x64]
lea esi, [esp + 0xf0]
push esi
push ebx
mov ebx, dword [esp + 0x20]
push edi
push eax
lea eax, [esp + 0x140]
push eax
call fcn.0046e480
mov edx, dword [esp + 0x28]
add esp, 0x14
test eax, eax
je 0x46d2f0
cmp dword [esp + 0x30], 0
jle 0x46cdb9
mov eax, dword [esp + 0x30]
lea esi, [eax + 1]
mov eax, dword [esp + 0x20]
lea edi, [eax + eax]
jmp 0x46d2cd
dec esi
add edi, 2
cmp esi, 1
jle 0x46cdb9
cmp word [edx + edi], 0
jne 0x46d2c0
mov eax, dword [esp + 8]
push dword [eax + edi*2]
mov eax, dword [esp + 0x60]
push eax
call dword [eax + 0x4c]
mov edx, dword [esp + 0x1c]
add esp, 8
mov word [edx + edi], ax
jmp 0x46d2c0
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
mov word [esi + 0x18], ax
mov byte [esi + 0xc], 0
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x6c]
mov byte [ecx + edi + 3], ah
movzx eax, byte [esi + 0x18]
mov byte [ecx + edi + 4], al
mov eax, dword [esp + 0x130]
sub eax, ecx
rol ax, 8
mov word [ecx + edi + 5], ax
jmp 0x46cde1
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x28]
movzx esi, word [ebx + 0x12]
movzx edx, word [esp + 0xb0]
add edx, esi
neg edx
add eax, edx
add eax, 0xfffffffe
mov dword [ebx + 0x14], eax
cmp byte [ecx + 0x11], 0
je 0x46d399
mov edx, dword [esp + 0xd0]
lea eax, [esp + 0x80]
push eax
mov eax, dword [esp + 0x58]
push dword [eax + 4]
push 5
call fcn.00453030
add esp, 0xc
movzx eax, word [esp + 0xb0]
cmp ax, word [ebx + 0x10]
jbe 0x46d399
mov ecx, ebx
mov edx, ebx
lea eax, [esp + 0x80]
push eax
push dword [esp + 0x184]
call fcn.00453430
add esp, 8
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x40]
movzx ecx, word [esi + 0x18]
movzx edx, byte [eax + ecx*2 - 2]
movzx ecx, byte [eax + ecx*2 - 1]
movzx eax, word [esi + 0x1a]
shl edx, 8
or ecx, edx
mov edx, dword [esi + 0x38]
and ecx, eax
lea eax, [edx + ecx]
lea esi, [edx + ecx]
add esi, 2
xor edx, edx
mov edi, eax
mov ecx, esi
inc eax
mov dword [esp + 0x180], eax
cmp byte [edi], 0
jns 0x46d3e5
lea edi, [edx + 1]
lea esi, [ecx + 1]
cmp edx, 8
mov edx, edi
jb 0x46d3c7
add eax, 9
mov esi, 4
mov dword [esp + 0x180], ecx
movzx edx, byte [ecx - 1]
mov byte [esp + esi + 0x1b0], dl
inc esi
test dl, dl
jns 0x46d40d
lea edx, [ecx + 1]
cmp ecx, eax
mov ecx, edx
jb 0x46d3ed
cmp dword [esp + 0x80], 0
mov edi, dword [esp + 0x54]
jne 0x46d443
movzx edx, word [edi + 0x18]
mov ecx, edi
lea eax, [esp + 0x80]
push eax
mov eax, dword [esp + 0x1c]
push dword [eax + 4]
push 0
push esi
lea eax, [esp + 0x1c0]
push eax
call fcn.0046b090
add esp, 0x14
mov eax, dword [edi + 0x38]
movzx ecx, byte [edi + 9]
mov edx, dword [esp + 0xd0]
bswap edx
mov dword [ecx + eax + 8], edx
mov ecx, dword [ebx + 0x48]
test byte [ecx + 0x1c], 0x20
jne 0x46d5f8
call fcn.00444500
jmp 0x46d636
mov dword [esp + 0x38], 0
cmp al, 1
jne 0x46d49d
mov eax, dword [esp + 0x54]
cmp word [eax + 0x18], 0
jne 0x46d49d
mov eax, dword [esp + 0x54]
movzx eax, byte [eax + 9]
mov ebx, dword [esp + 0x80]
cmp dword [ebx + 0x14], eax
jge 0x46d6b3
mov edi, ecx
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x11], 0
setne al
cmp byte [esp + 0x174], 0
sete cl
and cl, al
mov edx, dword [esp + 0xec]
and dl, cl
xor eax, eax
cmp dl, 1
jne 0x46d4fb
xor esi, esi
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + esi*4 + 0x80]
mov ecx, dword [eax + 0x38]
mov edx, dword [ecx + 8]
bswap edx
mov ecx, ebx
push edi
push dword [eax + 4]
push 5
call fcn.00453030
add esp, 0xc
inc esi
cmp dword [esp + 0xc], esi
jne 0x46d4cd
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0xc]
cmp esi, dword [esp + 0x60]
jg 0x46bd2a
mov edi, esi
mov ebx, dword [esp + 0x18]
jmp 0x46d518
inc edi
cmp dword [esp + 0x78], edi
je 0x46bd2e
test eax, eax
jne 0x46d50d
mov edx, dword [esp + edi*4 + 0xa0]
mov ecx, dword [edx + 0x34]
push dword [edx + 4]
call fcn.00469e60
add esp, 4
jmp 0x46d50d
test esi, esi
jle 0x46d64e
xor eax, eax
mov ebx, dword [esp + 0x18]
jmp 0x46d54c
inc eax
cmp eax, esi
je 0x46d77f
mov edx, dword [esp + eax*4 + 0x80]
mov ecx, dword [edx + 4]
mov dword [esp + eax*4 + 0x1c0], ecx
mov dword [esp + eax*4 + 0x150], ecx
mov edx, dword [edx + 0x48]
movzx edx, word [edx + 0x1c]
mov word [esp + eax*2 + 0x1a4], dx
test eax, eax
je 0x46d543
xor edx, edx
cmp dword [esp + edx*4 + 0x1c0], ecx
je 0x46d5d0
inc edx
cmp eax, edx
jne 0x46d579
jmp 0x46d543
mov edx, dword [ecx + 0x14]
dec dword [edx + 0x80]
mov eax, dword [edx + 0x90]
mov dword [ecx + 0x10], eax
mov dword [edx + 0x90], ecx
mov edi, dword [edx + 0x40]
mov eax, dword [ecx + 0x18]
dec eax
mov ebx, dword [edx + 0xac]
imul ebx, eax
mul dword [edx + 0xa8]
add edx, ebx
mov ebx, dword [edi]
push dword [ecx + 4]
push edx
push eax
push edi
call dword [ebx + 0x48]
add esp, 0x10
mov ebx, dword [esp + 0x18]
jmp 0x46c1b0
push 0x52b213
push 0x1259c
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004287c0
add esp, 0x14
mov eax, 0xb
jmp 0x46bd2e
mov edx, dword [ecx + 0x14]
dec dword [edx + 0x80]
mov eax, dword [edx + 0x90]
mov dword [ecx + 0x10], eax
mov dword [edx + 0x90], ecx
mov esi, dword [edx + 0x40]
mov eax, dword [ecx + 0x18]
dec eax
mov edi, dword [edx + 0xac]
imul edi, eax
mul dword [edx + 0xa8]
add edx, edi
mov edi, dword [esi]
push dword [ecx + 4]
push edx
push eax
push esi
call dword [edi + 0x48]
add esp, 0x10
mov esi, dword [esp + 0x68]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x80]
mov dword [esp + 8], eax
jmp 0x46c1b0
mov eax, dword [esp + 0xac]
mov dword [esp + 0x20], eax
mov dword [esp + 0xec], 0
mov eax, esi
jmp 0x46c8e4
push 0x52b213
push 0x12639
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004287c0
add esp, 0x14
mov eax, 0xb
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
jmp 0x46bd2e
push 0x52b213
push 0x12523
jmp 0x46c886
mov esi, dword [esp + 0xc]
jmp 0x46bd2e
mov ecx, ebx
mov edx, 0xffffffff
call fcn.0046de90
mov ecx, eax
test eax, eax
jne 0x46d4fb
mov ecx, dword [ebx + 0x38]
mov dword [esp + 8], ecx
movzx eax, byte [ebx + 9]
mov dword [esp + 0x20], eax
movzx eax, word [ecx + eax + 5]
rol ax, 8
mov ecx, dword [ebx + 0x34]
movzx eax, ax
mov dword [esp + 0x14], ecx
mov ecx, dword [ecx + 0x28]
sub ecx, eax
mov esi, dword [esp + 0x54]
mov edi, dword [esi + 0x38]
lea edx, [edi + eax]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 8]
add eax, edx
mov edx, dword [esi + 4]
mov dword [esp + 0x10], edx
push ecx
push eax
push dword [esp + 0x44]
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
cmp dword [esp + 0x10], 1
lea eax, [edi + 0x64]
cmovne eax, edi
mov edi, esi
mov esi, dword [esp + 8]
add esi, dword [esp + 0x20]
movzx ecx, word [ebx + 0x12]
movzx edx, word [ebx + 0x18]
lea ecx, [ecx + edx*2]
push ecx
push esi
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov byte [edi], 0
mov ecx, edi
call fcn.0044d210
mov ecx, eax
test eax, eax
jne 0x46d765
mov ecx, edi
call fcn.0046ae40
mov ecx, eax
test eax, eax
je 0x46d8db
mov eax, ecx
mov dword [esp + 0x38], ecx
jmp 0x46d4f7
push 0x52b213
push 0x1226d
jmp 0x46c83b
lea eax, [esi - 1]
lea ecx, [esi - 2]
mov dword [esp + 0x34], ecx
mov ecx, eax
and ecx, 3
mov dword [esp + 0x1c], ecx
and eax, 0xfffffffc
mov dword [esp + 8], eax
xor edi, edi
mov dword [esp + 0xc], esi
jmp 0x46d7d2
mov esi, dword [esp + edi*4 + 0x80]
mov ecx, dword [esi + 0x48]
movzx eax, word [esp + ebx*2 + 0x1a4]
mov word [ecx + 0x1c], ax
mov ebx, dword [esp + 0x20]
mov edx, ebx
call fcn.00453390
mov dword [esi + 4], ebx
inc edi
mov esi, dword [esp + 0xc]
cmp edi, esi
je 0x46d8c3
mov ebx, 0
cmp esi, 1
je 0x46d815
cmp dword [esp + 0x34], 3
jae 0x46d85a
mov eax, 1
xor ecx, ecx
mov ebx, ecx
cmp dword [esp + 0x1c], 0
je 0x46d815
mov edx, dword [esp + 0x1c]
jmp 0x46d7ff
inc eax
mov ecx, ebx
dec edx
je 0x46d815
mov esi, dword [esp + eax*4 + 0x150]
mov ebx, eax
cmp esi, dword [esp + ecx*4 + 0x150]
jb 0x46d7f9
mov ebx, ecx
jmp 0x46d7f9
mov eax, dword [esp + ebx*4 + 0x150]
mov dword [esp + 0x20], eax
mov dword [esp + ebx*4 + 0x150], 0xffffffff
cmp ebx, edi
je 0x46d7c5
jle 0x46d7a1
mov eax, dword [esp + ebx*4 + 0x80]
mov ecx, dword [eax + 0x48]
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x30]
lea edx, [ebx + eax]
inc edx
mov word [ecx + 0x1c], 0
call fcn.00453390
jmp 0x46d7a1
mov eax, 1
xor ecx, ecx
jmp 0x46d870
add eax, 4
cmp ebx, dword [esp + 8]
je 0x46d7ea
mov ebx, dword [esp + eax*4 + 0x150]
mov edx, eax
cmp ebx, dword [esp + ecx*4 + 0x150]
jb 0x46d884
mov edx, ecx
mov ecx, dword [esp + eax*4 + 0x154]
cmp ecx, dword [esp + edx*4 + 0x150]
jae 0x46d897
lea edx, [eax + 1]
mov ecx, dword [esp + eax*4 + 0x158]
cmp ecx, dword [esp + edx*4 + 0x150]
jae 0x46d8aa
lea edx, [eax + 2]
mov esi, dword [esp + eax*4 + 0x15c]
lea ebx, [eax + 3]
mov ecx, ebx
cmp esi, dword [esp + edx*4 + 0x150]
jb 0x46d863
mov ecx, edx
jmp 0x46d863
mov al, 1
mov dword [esp + 0xec], eax
mov eax, esi
mov esi, dword [esp + 0x60]
mov edx, dword [esp + 0x14]
jmp 0x46c8e8
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x11], 0
mov esi, dword [esp + 0xc]
je 0x46d900
mov ecx, dword [esp + 0x54]
call fcn.00452f50
mov ecx, eax
mov dword [esp + 0x38], eax
test eax, eax
jne 0x46d4fb
mov ecx, dword [ebx + 0x34]
mov edx, ebx
push dword [ebx + 4]
call fcn.00469e60
add esp, 4
jmp 0x46d4fb
xor eax, eax
jmp 0x46d947
push 0x52b213
push 0x1271f
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004287c0
add esp, 0x14
mov eax, 0xb
jmp 0x46d947
mov dword [esi + 0x7c], 0
mov eax, edx
mov ecx, dword [esp + 0x74]
test ecx, ecx
je 0x46d958
mov esi, eax
call fcn.004443e0
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esi + 0x7c], 0
test ebx, ebx
je 0x46d947
mov esi, eax
mov ecx, dword [ebx + 0x48]
test byte [ecx + 0x1c], 0x20
jne 0x46d97f
call fcn.00444500
mov eax, esi
jmp 0x46d947
mov edx, dword [ecx + 0x14]
dec dword [edx + 0x80]
mov eax, dword [edx + 0x90]
mov dword [ecx + 0x10], eax
mov dword [edx + 0x90], ecx
mov edi, dword [edx + 0x40]
mov eax, dword [ecx + 0x18]
dec eax
mov ebx, dword [edx + 0xac]
imul ebx, eax
mul dword [edx + 0xa8]
add edx, ebx
mov ebx, dword [edi]
push dword [ecx + 4]
push edx
push eax
push edi
call dword [ebx + 0x48]
add esp, 0x10
mov eax, esi
jmp 0x46d947