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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x1a0
mov eax, dword [0x101d2014]
mov ebx, ecx
xor eax, ebp
mov dword [esp + 0x198], eax
mov dword [esp + 0x48], ebx
mov eax, dword [ecx + 0x14]
mov edi, dword [ebx + 0x74]
mov ecx, 0xaaaaaaab
mov eax, dword [eax + 0x28]
add eax, eax
mul ecx
lea eax, [ebx + 0x7c]
shr edx, 1
mov dword [esp + 0x6c], eax
xor eax, eax
mov dword [esp + 0x74], edx
cmp dword [edi + 0x14], 0
mov dword [esp + 0x24], edi
js 0x1004705a
cmp byte [edi + 0xc], 0
jne 0x1004516f
xor esi, esi
cmp dword [edi + 0x14], edx
jle 0x10047477
mov cl, byte [ebx + 0x44]
test cl, cl
jne 0x1004517a
jmp 0x10047477
mov cl, byte [ebx + 0x44]
test cl, cl
je 0x100468e4
mov dword [esp + 0x50], eax
movsx eax, cl
mov byte [esp + 0x43], cl
mov ecx, dword [ebx + eax*4 + 0x74]
movzx eax, word [ebx + eax*2 + 0x46]
mov dword [esp + 0x2c], ecx
mov ecx, dword [ecx + 0x48]
mov dword [esp + 0x58], eax
mov eax, dword [ecx + 0x14]
test byte [ecx + 0x1c], 4
je 0x10046b6f
mov edx, dword [eax + 0x18]
cmp edx, dword [ecx + 0x18]
jb 0x10046b6f
cmp dword [eax + 0x60], 0
je 0x100451c7
call fcn.1001ee10
mov esi, eax
test eax, eax
jne 0x10046d37
mov eax, dword [esp + 0x2c]
cmp dword [eax + 0x14], 0
js 0x10046d24
cmp byte [edi + 3], 0
jne 0x10046d9b
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + 0x24]
call fcn.10026b70
movzx edx, byte [ebx + 3]
mov esi, dword [esp + 0x2c]
xor ecx, ecx
test eax, eax
mov byte [esp + 0xb0], 0
mov dword [esp + 0x64], eax
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0xac], ecx
mov dword [esp + 0xc8], ecx
je 0x100471f7
mov eax, dword [esi + 0x34]
movzx ecx, byte [esi + 0xc]
mov ebx, dword [esp + 0x58]
and edx, 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x28], eax
movzx eax, word [esi + 0x18]
lea edx, [eax + ecx]
mov edi, edx
cmp edx, 2
jb 0x10046d1d
test bx, bx
je 0x10046b96
cmp edi, ebx
je 0x10046c77
dec ebx
mov edi, 2
sub edi, dword [esp + 0x1c]
mov edx, ebx
mov dword [esp + 0x38], edi
sub edx, ecx
mov ecx, edi
mov ecx, dword [esi + 0x38]
add edx, edi
cmp edx, eax
mov dword [esp + 0x60], ecx
je 0x10046b63
mov eax, esi
movzx esi, word [esi + 0x1a]
mov eax, dword [eax + 0x40]
movzx eax, word [eax + edx*2]
push eax
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ushort
add esp, 4
and ax, si
movzx ecx, ax
mov esi, dword [esp + 0x38]
mov dword [esp + 0x5c], ecx
lea eax, [esi + 1]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x60]
push dword [eax + ecx]
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
mov edi, eax
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x28]
cmp dword [eax + 0x30], edi
jb 0x100472a4
lea edx, [ebx - 1]
lea ecx, [esi*4]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x14], edx
lea edx, [ebx + ebx]
mov dword [esp + 0x18], edx
mov edx, esi
mov esi, dword [eax]
mov dword [esp + 0xc], ecx
mov dword [esp + 4], edx
mov ecx, dword [esi + 0xcc]
cmp ecx, fcn.10023550
jne 0x10047041
push 0
lea eax, [esp + 0x94]
push eax
push edi
push esi
call fcn.10023550
add esp, 0x10
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 4]
mov ebx, eax
test eax, eax
jne 0x10046f51
mov eax, dword [esp + 0x90]
mov dword [esp + 8], edi
mov edi, dword [eax + 8]
mov dword [esp + edx*4 + 0x18c], edi
cmp byte [edi], 0
je 0x10046bff
mov dword [esp + 0x8c], 0
cmp dword [edi + 0x14], 0
js 0x10046cc2
mov esi, edx
sub esi, 1
jb 0x10045439
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
movzx eax, byte [ebx + 0xc]
add ecx, edx
mov dword [esp + 0x10], ecx
test eax, eax
jne 0x10047144
movzx ecx, word [ebx + 0x1a]
add eax, eax
mov edi, dword [ebx + 0x38]
mov dword [esp + 8], ecx
mov ecx, dword [ebx + 0x40]
sub ecx, eax
add ecx, dword [esp + 0x18]
movzx eax, word [ecx + edx*2 - 2]
push eax
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ushort
add esp, 4
and eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edx, edi
add edi, eax
mov dword [esp + ecx*4 + 0x16c], edi
push dword [edx + eax]
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
mov ecx, dword [ebx + 0x4c]
mov dword [esp + 8], eax
call dword [section..00cfg]
mov dword [esp + 0x3c], edi
push edi
push ebx
call ecx
add esp, 8
movzx edi, ax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x28]
mov dword [esp + eax*4 + 0x130], edi
test byte [ecx + 0x18], 0xc
jne 0x10047191
movzx eax, byte [ebx + 0xc]
mov edx, dword [esp + 0x10]
mov ecx, ebx
sub edx, eax
lea eax, [esp + 0x8c]
push eax
push edi
call fcn.10044c30
add esp, 8
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 8]
mov edx, esi
add ecx, 0xfffffffc
cmp dword [eax + 0x30], edi
jae 0x100452ed
jmp 0x1004729d
mov eax, dword [esp + 8]
mov edx, 0xaaaaaaab
mov dword [esp + 0x88], eax
mov ecx, dword [ecx + 0x24]
lea eax, [ecx - 8]
mul edx
mov esi, edx
shr esi, 2
add esi, 4
imul esi, dword [esp + 0x68]
add esi, 3
and esi, 0xfffffffc
lea eax, [esi + esi*2]
lea ecx, [ecx + eax*2]
mov edx, ecx
sar edx, 0x1f
call fcn.10002c70
test eax, eax
mov dword [esp + 0xc8], eax
je 0x100472ce
mov edx, dword [esp + 0x18c]
lea eax, [eax + esi*4]
mov dword [esp + 0x20], 0
mov dword [esp + 0xcc], eax
lea ecx, [eax + esi*2]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0xc4], edx
lea edi, [edx + 0x12]
mov dword [esp + 0x14], edx
movzx ecx, byte [edx + 8]
movzx esi, word [edx + 0x12]
mov ebx, dword [esp + 0xc0]
mov dword [esp + 8], edi
mov dword [esp + 0x7c], ecx
shl ecx, 2
mov dword [esp + 0x30], ecx
mov ecx, dword [edx + 0x38]
mov dword [esp + 4], ecx
add esi, ecx
movzx ecx, byte [edx + 3]
mov dword [esp + 0x18], ecx
lea ecx, [edx + 0x38]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x34], ecx
xor ecx, ecx
mov dword [esp + 0x3c], ecx
movzx ecx, word [edx + 0x1a]
mov dword [esp + 0x10], edx
movzx edi, word [edx + 0x18]
movzx edx, byte [edx + 0xc]
lea eax, [eax + ebx*2]
add edx, edi
mov dword [esp + 0xc], ecx
add edx, edx
push edx
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp byte [eax + 0xc], 0
jne 0x10045690
mov ebx, dword [esp + 0xc0]
mov edx, dword [esp + 4]
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
movzx eax, word [eax]
movzx ecx, word [ecx + 0x18]
add eax, edx
lea eax, [eax + ecx*2]
cmp esi, eax
jae 0x1004558a
mov edi, dword [esp + 0xc]
mov dword [esp + 8], eax
movzx eax, word [esi]
push eax
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ushort
add esp, 4
mov ecx, edi
add esi, 2
and ecx, eax
movzx eax, cx
mov ecx, dword [esp + 0xc8]
add eax, dword [esp + 4]
mov dword [ecx + ebx*4], eax
mov ebx, dword [esp + 0xc0]
inc ebx
cmp esi, dword [esp + 8]
mov dword [esp + 0xc0], ebx
jb 0x10045551
mov edi, dword [esp + 0x3c]
cmp byte [esp + 0x18], 0
mov dword [esp + edi*4 + 0x148], ebx
jne 0x10045728
mov eax, dword [esp + 0x38]
cmp edi, eax
jae 0x1004572c
mov eax, dword [esp + edi*4 + 0x134]
mov esi, dword [esp + 0x4c]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0xcc]
movzx eax, ax
add esi, edx
add edx, eax
mov word [ecx + ebx*2], ax
mov dword [esp + 0x20], edx
push eax
push dword [esp + edi*4 + 0x174]
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc8]
add esi, edx
mov dword [ecx + eax*4], esi
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xcc]
sub word [ecx + eax*2], dx
mov eax, dword [esp + 0x10]
cmp byte [eax + 8], 0
je 0x10045739
mov ebx, dword [esp + 0xc0]
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
cmp word [eax + ebx*2], 3
jbe 0x10047089
mov eax, dword [esp + 0x38]
inc ebx
mov dword [esp + 0xc0], ebx
cmp edi, eax
je 0x10045769
mov edx, dword [esp + edi*4 + 0x190]
mov ecx, dword [esp + 0x44]
mov esi, edi
mov edi, dword [edx + 0x38]
mov ecx, dword [ecx]
mov al, byte [edi]
cmp al, byte [ecx]
jne 0x100470f2
lea eax, [edx + 0x38]
inc esi
mov dword [esp + 4], edi
mov dword [esp + 0x34], eax
lea eax, [edx + 0x12]
mov ecx, esi
movzx esi, word [eax]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xcc]
add esi, edi
jmp 0x100454ed
mov ecx, edi
movzx edi, word [eax + 0x1c]
cmp cx, di
jb 0x100470fe
mov ebx, dword [esp + 0xc0]
test di, di
je 0x100456f3
movzx eax, word [esi]
push eax
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ushort
mov edx, dword [esp + 8]
add esp, 4
mov ecx, dword [esp + 0xc]
add esi, 2
and ecx, eax
movzx eax, cx
mov ecx, dword [esp + 0xc8]
add eax, edx
mov dword [ecx + ebx*4], eax
mov ebx, dword [esp + 0xc0]
inc ebx
dec edi
mov dword [esp + 0xc0], ebx
jne 0x100456ab
mov eax, dword [esp + 0x10]
cmp byte [eax + 0xc], 0
je 0x10045531
mov edx, dword [esp + 0x10]
xor eax, eax
mov ecx, dword [edx + eax*4 + 0x24]
mov edx, dword [esp + 0xc8]
inc eax
mov dword [edx + ebx*4], ecx
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc0]
inc ebx
mov dword [esp + 0xc0], ebx
movzx ecx, byte [edx + 0xc]
cmp eax, ecx
jb 0x100456f9
jmp 0x1004552d
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
jmp 0x10045646
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 8]
mov dword [eax], ecx
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0xc0]
jmp 0x1004563a
mov eax, dword [ecx + 0x28]
mov edi, dword [esp + 0x30]
xor esi, esi
lea eax, [edi + eax - 0xc]
mov dword [esp + 0x3c], eax
xor eax, eax
mov ecx, dword [edx + 0x3c]
test eax, eax
mov edi, 0
mov dword [esp + eax*4 + 0xd0], ecx
mov ecx, dword [esp + esi*4 + 0x148]
mov dword [esp + eax*4 + 0xe8], ecx
je 0x100457aa
cmp ecx, dword [esp + eax*4 + 0xe4]
lea edi, [eax - 1]
cmovne edi, eax
cmp byte [esp + 0x18], 0
jne 0x100457ca
mov eax, dword [esp + 0x2c]
lea ebx, [ecx + 1]
mov eax, dword [eax + 0x3c]
mov dword [esp + edi*4 + 0xd4], eax
mov dword [esp + edi*4 + 0xec], ebx
inc edi
mov ebx, dword [esp + 0x3c]
sub ebx, dword [edx + 0x14]
mov dword [esp + esi*4 + 0x134], ebx
cmp byte [edx + 0xc], 0
jne 0x100457f8
cmp esi, dword [esp + 0x38]
mov dword [esp + esi*4 + 0x15c], ecx
je 0x10045850
mov edx, dword [esp + esi*4 + 0x190]
inc edi
inc esi
mov eax, edi
jmp 0x1004577c
mov dword [esp + 4], 0
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 4]
mov ecx, dword [edx + 0x4c]
mov eax, dword [edx + eax*4 + 0x24]
mov dword [esp + 8], eax
call dword [section..00cfg]
push dword [esp + 8]
push dword [esp + 0x18]
call ecx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
add esp, 8
movzx eax, ax
inc dword [esp + 4]
lea ebx, [ebx + eax + 2]
mov dword [esp + esi*4 + 0x134], ebx
movzx eax, byte [edx + 0xc]
cmp dword [esp + 4], eax
jae 0x100457de
jmp 0x10045808
mov eax, dword [esp + 0x68]
xor ecx, ecx
mov dword [esp + 0x10], eax
mov ebx, dword [esp + ecx*4 + 0x134]
cmp ebx, dword [esp + 0x3c]
jg 0x10045946
mov esi, dword [esp + ecx*4 + 0x15c]
mov eax, dword [esp + 0xc0]
mov edi, esi
cmp esi, eax
jge 0x10045919
mov eax, dword [esp + 0xcc]
movzx eax, word [eax + esi*2]
test ax, ax
je 0x10046f91
movzx eax, ax
lea ebx, [eax + ebx + 2]
cmp ebx, dword [esp + 0x3c]
jg 0x10045910
cmp byte [esp + 0x18], 0
lea edi, [esi + 1]
mov dword [esp + ecx*4 + 0x134], ebx
mov dword [esp + ecx*4 + 0x15c], edi
jne 0x100458f3
cmp edi, dword [esp + 0xc0]
jge 0x10046d57
mov eax, dword [esp + 0xcc]
mov dword [esp + 4], ecx
movzx eax, word [eax + esi*2 + 2]
test ax, ax
jne 0x100458ec
lea ecx, [esp + 0xc0]
mov edx, edi
call fcn.10048180
mov ecx, dword [esp + 4]
movzx eax, ax
add eax, 2
sub dword [esp + ecx*4 + 0x138], eax
mov eax, dword [esp + 0xc0]
mov esi, edi
cmp edi, eax
jl 0x10045883
jmp 0x10045919
mov eax, dword [esp + 0xc0]
mov edi, esi
cmp edi, eax
jge 0x10045a1c
xor eax, eax
test ecx, ecx
je 0x1004592e
mov eax, dword [esp + ecx*4 + 0x158]
cmp edi, eax
jle 0x100471d9
inc ecx
cmp ecx, dword [esp + 0x10]
jl 0x1004585a
jmp 0x10045a21
lea eax, [ecx + 1]
lea edx, [ecx + 2]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov eax, dword [esp + 8]
cmp eax, dword [esp + 0x10]
jge 0x100459e9
mov edi, dword [esp + ecx*4 + 0x15c]
mov eax, dword [esp + 0xcc]
movzx eax, word [eax + edi*2 - 2]
lea esi, [edi - 1]
test ax, ax
jne 0x1004598f
lea ecx, [esp + 0xc0]
mov edx, esi
call fcn.10048180
movzx eax, ax
mov ecx, dword [esp + 4]
add eax, 2
sub ebx, eax
cmp byte [esp + 0x18], 0
mov dword [esp + ecx*4 + 0x134], ebx
jne 0x100459cc
cmp edi, dword [esp + 0xc0]
jge 0x10045a18
mov eax, dword [esp + 0xcc]
movzx eax, word [eax + edi*2]
test ax, ax
je 0x10047375
movzx eax, ax
add eax, 2
add dword [esp + ecx*4 + 0x138], eax
cmp ebx, dword [esp + 0x3c]
mov dword [esp + ecx*4 + 0x15c], esi
jle 0x10045872
jmp 0x10045958
cmp ecx, 4
jae 0x1004710a
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0xc]
mov dword [esp + ecx*4 + 0x138], 0
mov dword [esp + ecx*4 + 0x160], eax
mov dword [esp + 0x10], edx
jmp 0x10045966
xor eax, eax
jmp 0x100459cc
inc ecx
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x10]
lea ecx, [eax - 1]
mov eax, dword [esp + 0x18]
mov edi, ecx
mov dword [esp + 0x54], ecx
add eax, eax
neg eax
mov dword [esp + 0x34], eax
test edi, edi
jle 0x10045b8d
mov edx, dword [esp + edi*4 + 0x158]
mov ecx, dword [esp + 0xcc]
mov eax, dword [esp + edi*4 + 0x134]
mov ebx, dword [esp + edi*4 + 0x130]
mov esi, edx
sub edx, dword [esp + 0x18]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
cmp word [ecx + edx*2], 0
je 0x10046eca
lea ecx, [edi - 1]
mov edx, dword [esp + 8]
mov dword [esp + 0x20], edi
mov dword [esp + 0x4c], ecx
xor ecx, ecx
cmp edi, dword [esp + 0x54]
sete cl
lea eax, [ecx + ecx - 2]
mov ecx, esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 4]
lea esi, [ecx - 1]
cmp word [eax + ecx*2 - 2], 0
jne 0x10045ac6
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
lea ecx, [esp + 0xc0]
mov edx, esi
call fcn.10048180
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
test edx, edx
mov dword [esp + 8], esi
je 0x10045b68
cmp byte [esp + 0x1c], 0
mov esi, ecx
jne 0x10046f86
mov edi, dword [esp + 0xcc]
mov ecx, dword [esp + 0x34]
add ecx, edi
mov dword [esp + 4], edi
movzx ecx, word [ecx + esi*2]
lea eax, [edx + ecx + 2]
mov ecx, edx
movzx edx, word [edi + esi*2 - 2]
mov edi, dword [esp + 0x14]
mov dword [esp + 0xc], eax
add edi, ebx
sub edi, edx
cmp eax, edi
mov edi, dword [esp + 0x20]
jg 0x10045b39
mov esi, dword [esp + 8]
mov eax, dword [esp + 0xc]
sub ebx, edx
add ebx, 0xfffffffe
mov edx, esi
mov ecx, esi
mov dword [esp + edi*4 + 0x158], esi
inc edx
cmp edx, 1
mov edx, eax
jg 0x10045a99
jmp 0x10045b3b
mov eax, ecx
mov dword [esp + edi*4 + 0x134], eax
xor eax, eax
cmp edi, 2
mov dword [esp + edi*4 + 0x130], ebx
jl 0x10045b57
mov eax, dword [esp + edi*4 + 0x154]
mov edi, dword [esp + 0x4c]
cmp esi, eax
jg 0x10045a3a
jmp 0x10047116
mov edx, dword [esp + 0xcc]
mov eax, ecx
mov ecx, dword [esp + 0x34]
add ecx, edx
mov dword [esp + 4], edx
movzx edx, word [edx + eax*2 - 2]
movzx ecx, word [ecx + eax*2]
add ecx, 2
mov dword [esp + 0xc], ecx
jmp 0x10045b13
mov eax, dword [esp + 0x44]
cmp dword [esp + 0x10], 0
mov eax, dword [eax]
movzx ebx, byte [eax]
jle 0x10046b54
mov esi, dword [esp + 0x38]
mov dword [esp + 4], ebx
xor ebx, ebx
mov dword [esp + 0xc], 0
cmp ebx, esi
ja 0x10045c4e
mov eax, dword [esp + ebx*4 + 0x18c]
mov dword [esp + ebx*4 + 0x18c], 0
mov dword [esp + ebx*4 + 0x178], eax
mov dword [esp + 0x90], eax
mov ecx, dword [eax + 0x48]
mov eax, dword [ecx + 0x14]
test byte [ecx + 0x1c], 4
je 0x10045c2a
mov edx, dword [eax + 0x18]
cmp edx, dword [ecx + 0x18]
jb 0x10045c2a
cmp dword [eax + 0x60], 0
je 0x10045c19
call fcn.1001ee10
inc dword [esp + 0xc]
test eax, eax
mov dword [esp + 0x8c], eax
jne 0x100467a1
inc ebx
cmp dword [esp + 0x10], ebx
jne 0x10045bb3
jmp 0x10045cf7
inc dword [esp + 0xc]
mov dword [esp + 0x8c], 0
jmp 0x10045c0d
mov edx, dword [eax + 0x28]
test edx, edx
jne 0x10047358
mov edx, dword [eax + 0x94]
cmp edx, dword [eax + 0x98]
ja 0x1004738c
call fcn.10029840
jmp 0x10045bfa
cmp byte [esp + 0x1c], 0
mov eax, 1
je 0x10046b9d
mov edi, dword [esp + 0x28]
lea edx, [esp + 0x90]
mov ecx, edi
push 0
push eax
lea eax, [esp + 0x90]
push eax
call fcn.1002aeb0
add esp, 0xc
test eax, eax
mov dword [esp + 0x8c], eax
jne 0x100467a1
mov esi, dword [esp + 0x90]
mov edx, dword [esp + 4]
mov ecx, esi
call fcn.10029320
mov eax, dword [esp + 0xc0]
mov dword [esp + ebx*4 + 0x178], esi
inc dword [esp + 0xc]
mov dword [esp + ebx*4 + 0x148], eax
cmp byte [edi + 0x11], 0
je 0x10046ee6
mov edx, dword [esi + 4]
lea eax, [esp + 0x8c]
mov ecx, edi
push eax
mov eax, dword [esp + 0x30]
push dword [eax + 4]
push 5
call fcn.1002c340
add esp, 0xc
cmp dword [esp + 0x8c], 0
mov esi, dword [esp + 0x38]
je 0x10045c0d
jmp 0x100467a1
mov edx, dword [esp + 0xc]
xor esi, esi
test edx, edx
jle 0x10047368
mov ecx, dword [esp + esi*4 + 0x178]
test esi, esi
mov edi, esi
mov eax, dword [ecx + 4]
mov dword [esp + esi*4 + 0x120], eax
mov dword [esp + esi*4 + 0x10c], eax
mov ecx, dword [ecx + 0x48]
movzx ecx, word [ecx + 0x1c]
mov word [esp + esi*2 + 0x102], cx
je 0x10045d48
xor ecx, ecx
cmp dword [esp + ecx*4 + 0x120], eax
je 0x10047013
inc ecx
mov edi, esi
cmp esi, ecx
jne 0x10045d34
inc esi
cmp esi, edx
jne 0x10045d05
xor edi, edi
cmp edx, 1
mov esi, 0
je 0x10045d7b
xor ecx, ecx
xor eax, eax
inc eax
mov edx, dword [esp + eax*4 + 0x10c]
mov esi, eax
cmp edx, dword [esp + ecx*4 + 0x10c]
jb 0x10045d72
mov esi, ecx
inc eax
mov ecx, esi
cmp dword [esp + 0xc], eax
jne 0x10045d5e
mov ebx, dword [esp + esi*4 + 0x10c]
cmp esi, edi
mov dword [esp + esi*4 + 0x10c], 0xffffffff
jne 0x10045d9f
mov edx, dword [esp + 0xc]
inc edi
cmp edi, edx
jne 0x10045d4f
jmp 0x10045e87
jle 0x10045e18
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x30]
lea eax, [esi + eax + 1]
mov dword [esp + 8], eax
mov eax, dword [esp + esi*4 + 0x178]
mov edx, dword [eax + 0x48]
mov word [edx + 0x1c], 0
mov dword [esp + 0x14], edx
mov eax, dword [edx]
mov ecx, dword [0x101d20a8]
mov dword [esp + 0x10], eax
mov eax, dword [edx + 0xc]
mov edx, dword [edx + 0x18]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], eax
call dword [section..00cfg]
push dword [esp + 8]
push dword [esp + 0x24]
push dword [esp + 0x18]
push dword [esp + 0x28]
call ecx
mov ecx, dword [esp + 0x24]
add esp, 0x10
mov eax, dword [esp + 8]
mov dword [ecx + 0x18], eax
movzx eax, word [ecx + 0x1c]
and eax, 0xa
cmp ax, 0xa
je 0x1004743a
mov ecx, dword [esp + edi*4 + 0x178]
movzx eax, word [esp + esi*2 + 0x102]
mov esi, dword [ecx + 0x48]
mov dword [esp + 8], ecx
mov word [esi + 0x1c], ax
mov eax, dword [esi]
mov ecx, dword [0x101d20a8]
mov edx, dword [esi + 0x18]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x1c], edx
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x14], eax
call dword [section..00cfg]
push ebx
push dword [esp + 0x20]
push dword [esp + 0x18]
push dword [esp + 0x20]
call ecx
add esp, 0x10
mov dword [esi + 0x18], ebx
movzx eax, word [esi + 0x1c]
and eax, 0xa
cmp ax, 0xa
je 0x100473c5
mov eax, dword [esp + 8]
mov dword [eax + 4], ebx
jmp 0x10045d91
mov al, 1
mov dword [esp + 0x88], ebx
mov dword [esp + 0x70], eax
mov ebx, dword [esp + 4]
mov esi, dword [esp + edx*4 + 0x174]
mov edi, edx
push dword [esi + 4]
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
test bl, 8
mov dword [ecx + edx], eax
jne 0x10045ec6
cmp dword [esp + 0x68], edi
jne 0x10046cf0
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], edi
cmp byte [eax + 0x11], 0
je 0x100460ca
mov eax, dword [esp + 0xc0]
test eax, eax
jle 0x100460ca
xor ecx, ecx
cmp byte [esp + 0x18], 0
mov edx, dword [esp + 0x178]
mov dword [esp + 4], 0
sete cl
movzx esi, word [edx + 0x18]
mov dword [esp + 0x10], edx
mov dword [esp + 8], edx
mov dword [esp + 0x44], ecx
movzx ecx, byte [edx + 0xc]
add esi, ecx
xor ecx, ecx
mov dword [esp + 0x14], esi
xor esi, esi
mov edx, dword [esp + 0xc8]
cmp esi, dword [esp + 0x14]
mov edi, dword [edx + esi*4]
je 0x10046026
cmp esi, dword [esp + ecx*4 + 0x15c]
je 0x10046008
mov ebx, ecx
mov ecx, dword [esp + 4]
cmp ecx, dword [esp + 0xc]
jge 0x10045f7d
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 4]
mov ecx, dword [ecx + 4]
cmp ecx, dword [esp + edx*4 + 0x120]
jne 0x10045f7d
mov ecx, dword [esp + 8]
cmp dword [ecx + 0x38], edi
ja 0x10045f7d
mov ecx, dword [esp + 8]
cmp dword [ecx + 0x3c], edi
jbe 0x10045f7d
inc esi
mov ecx, ebx
cmp esi, eax
jl 0x10045f1e
jmp 0x100460ca
cmp byte [esp + 0x7c], 0
je 0x10046094
mov eax, dword [esp + 0xcc]
movzx eax, word [eax + esi*2]
test ax, ax
jne 0x10045fa6
lea ecx, [esp + 0xc0]
mov edx, esi
call fcn.10048180
mov ecx, dword [esp + 0x10]
cmp ax, word [ecx + 0x10]
jbe 0x10045fee
cmp dword [esp + 0x8c], 0
jne 0x10045fee
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x50]
call dword [section..00cfg]
lea eax, [esp + 0x90]
push eax
push edi
push dword [esp + 0x18]
call ecx
add esp, 0xc
movzx eax, word [esp + 0xa0]
cmp dword [esp + 0x9c], eax
ja 0x10046ba9
cmp dword [esp + 0x8c], 0
jne 0x100467a1
mov eax, dword [esp + 0xc0]
jmp 0x10045f71
lea ebx, [ecx + 1]
cmp byte [esp + 0x18], 0
mov ecx, dword [esp + ecx*4 + 0x17c]
mov dword [esp + 0x10], ecx
je 0x10045f71
jmp 0x10045f41
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 4]
add edx, esi
mov dword [esp + 0x34], edx
lea edx, [esp + 0x190]
lea edx, [edx + ebx*4]
mov dword [esp + 0x1c], edx
lea edx, [esp + 0x17c]
lea edx, [edx + ebx*4]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 4]
inc edx
mov ebx, edx
cmp edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 4], edx
cmovl ebx, dword [esp + 0x20]
add dword [esp + 0x1c], 4
add dword [esp + 0x20], 4
mov edx, dword [ebx]
movzx ebx, word [edx + 0x18]
mov dword [esp + 8], edx
movzx edx, byte [edx + 0xc]
add ebx, dword [esp + 0x34]
add edx, ebx
cmp esi, edx
mov dword [esp + 0x14], edx
jne 0x10045f32
jmp 0x10046050
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
mov dword [esp + 0x1c], eax
push dword [edi]
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
mov ecx, dword [esp + 0x28]
mov edx, eax
lea eax, [esp + 0x8c]
push eax
push dword [esp + 0x20]
push 5
call fcn.1002c340
add esp, 0xc
jmp 0x10045f88
mov esi, dword [esp + 0xc]
cmp esi, 2
jl 0x100461b2
lea eax, [esi - 1]
xor ebx, ebx
mov dword [esp + 0x20], eax
xor eax, eax
mov edx, dword [esp + 0xc8]
mov esi, dword [esp + ebx*4 + 0x15c]
mov edi, dword [esp + ebx*4 + 0x178]
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0x10], eax
mov dword [esp + 0x34], edx
mov edx, dword [edx + esi*4]
movzx ecx, word [ecx + esi*2]
cmp byte [edi + 8], 0
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x30]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x64]
lea edi, [ecx + edi]
mov dword [esp + 8], edi
lea eax, [edx + eax]
mov dword [esp + 0x1c], eax
je 0x100461a0
cmp byte [esp + 0x18], 0
jne 0x10046eef
mov edi, dword [esp + 0x14]
add dword [esp + 4], 0xfffffffc
cmp cx, 4
je 0x100470cb
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x2c]
lea edx, [eax + ebx]
lea eax, [esp + 0x8c]
push eax
push dword [edi + 4]
push esi
mov esi, dword [esp + 0x14]
push esi
push dword [esp + 0x14]
call fcn.10044d50
add esp, 0x14
cmp dword [esp + 0x8c], 0
jne 0x100467a1
mov eax, dword [esp + 0x10]
inc ebx
add eax, esi
cmp dword [esp + 0x20], ebx
mov esi, dword [esp + 0xc]
jne 0x100460e2
jmp 0x100461b2
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 0x38]
mov ecx, dword [ecx]
mov dword [eax + 8], ecx
jmp 0x1004614f
xor eax, eax
mov cl, byte [esp + 0x43]
mov edx, dword [esp + 0x38]
inc eax
sub eax, esi
cmp eax, esi
jge 0x1004675a
xor ebx, ebx
cmp byte [esp + 0x18], 0
mov edi, dword [esp + 0x15c]
sete bl
mov dword [esp + 0x80], edi
mov dword [esp + 0x78], ebx
mov edi, eax
neg edi
cmovl edi, eax
cmp byte [esp + edi + 0xac], 0
jne 0x10046399
test eax, eax
mov dword [esp + 0x58], eax
jns 0x10046218
mov eax, dword [esp + edi*4 + 0x144]
cmp eax, dword [esp + edi*4 + 0x158]
mov eax, dword [esp + 0x58]
jl 0x10046399
test edi, edi
je 0x100464eb
cmp edi, edx
jg 0x100466b5
mov esi, dword [esp + edi*4 + 0x144]
mov ecx, dword [esp + 0x78]
lea eax, [edi - 1]
add esi, ecx
mov eax, dword [esp + eax*4 + 0x15c]
mov ebx, dword [esp + edi*4 + 0x15c]
add eax, ecx
sub ebx, eax
mov edx, dword [esp + edi*4 + 0x178]
mov dword [esp + 8], edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x4c], esi
mov ecx, dword [edx + 0x38]
movzx edi, word [edx + 0x18]
mov dword [esp + 4], edx
mov dword [esp + 0x20], ecx
movzx ecx, byte [edx + 9]
mov dword [esp + 0x18], edi
mov dword [esp + 0x34], ecx
lea ecx, [ebx + ebx]
add ecx, dword [edx + 0x40]
cmp esi, eax
mov dword [esp + 0x1c], ecx
movzx ecx, byte [edx + 0xc]
jl 0x100465a3
add edi, esi
add ebx, eax
add edi, ecx
cmp edi, ebx
jg 0x100463a7
mov ebx, dword [esp + 8]
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x34]
movzx eax, byte [ecx + esi + 5]
movzx ecx, byte [ecx + esi + 6]
shl eax, 8
lea eax, [eax + ecx - 1]
movzx eax, ax
lea eax, [eax + esi + 1]
cmp eax, dword [esp + 0x1c]
mov dword [esp + 0x90], eax
jb 0x100466c8
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x10]
sub esi, ebx
jg 0x10046484
mov al, byte [edx + 0xc]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
test al, al
jne 0x100464fb
mov edi, dword [esp + 0x18]
mov ecx, edx
lea eax, [edi + edi]
sub ebx, edi
add edi, esi
lea esi, [esp + 0xc0]
add eax, dword [edx + 0x40]
mov edx, dword [esp + 0x1c]
push esi
push ebx
push edi
push eax
lea eax, [esp + 0xa0]
push eax
call fcn.100481c0
mov ecx, dword [esp + 0x18]
add esp, 0x14
mov ebx, dword [esp + 8]
test eax, eax
jne 0x100466c8
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x34]
mov word [ecx + 0x18], ax
mov byte [ecx + 0xc], 0
mov byte [edx + esi + 3], ah
mov al, byte [ecx + 0x18]
mov byte [edx + esi + 4], al
mov eax, dword [esp + 0x90]
sub eax, edx
rol ax, 8
mov word [edx + esi + 5], ax
mov dword [esp + 0x8c], 0
mov eax, dword [esp + 0x3c]
mov byte [esp + ebx + 0xac], 1
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0xc]
sub eax, dword [esp + ebx*4 + 0x134]
mov dword [ecx + 0x14], eax
mov cl, byte [esp + 0x43]
mov eax, dword [esp + 0x58]
inc eax
cmp eax, esi
jne 0x100461e3
jmp 0x1004675a
mov eax, dword [edx + 0x34]
mov esi, dword [edx + 0x38]
movzx ecx, byte [edx + 0xa]
mov dword [esp + 0x54], 0
mov dword [esp + 0x44], edi
mov eax, dword [eax + 0x28]
mov dword [esp + 0x5c], esi
add eax, esi
mov dword [esp + 0x30], eax
movzx eax, byte [edx + 9]
xor edx, edx
add ecx, eax
lea eax, [esi + ecx + 8]
mov dword [esp + 0x60], eax
xor eax, eax
mov ecx, dword [esp + 0xc8]
mov esi, dword [ecx + ebx*4]
cmp esi, dword [esp + 0x60]
jb 0x10046446
cmp esi, dword [esp + 0x30]
jae 0x10046446
mov ecx, dword [esp + 0xcc]
movzx edi, word [ecx + ebx*2]
lea ecx, [esi + edi]
cmp edx, ecx
je 0x1004644d
test edx, edx
je 0x10046430
sub edx, dword [esp + 0x5c]
mov dword [esp + 0x84], ecx
mov ecx, 0xffff
and eax, ecx
and edx, ecx
mov ecx, dword [esp + 4]
push eax
call fcn.10047830
mov ecx, dword [esp + 0x88]
add esp, 4
cmp ecx, dword [esp + 0x30]
ja 0x1004707e
mov eax, edi
mov edi, dword [esp + 0x44]
inc dword [esp + 0x54]
mov edx, esi
inc ebx
cmp ebx, edi
jl 0x100463dc
jmp 0x10046451
add edi, eax
jmp 0x1004643a
test edx, edx
je 0x1004646f
sub edx, dword [esp + 0x5c]
mov ecx, 0xffff
and eax, ecx
and edx, ecx
mov ecx, dword [esp + 4]
push eax
call fcn.10047830
add esp, 4
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 4]
sub dword [esp + 0x18], eax
jmp 0x100462a4
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edi, dword [edx + 0x40]
cmp esi, eax
lea ecx, [ecx + ecx]
cmovg esi, eax
lea eax, [edi + esi*2]
push ecx
push edi
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 4]
lea eax, [esp + 0xc0]
push eax
push esi
push ebx
push edi
lea eax, [esp + 0xa0]
push eax
call fcn.100481c0
mov edx, dword [esp + 0x18]
add esp, 0x14
mov ebx, dword [esp + 8]
test eax, eax
mov ecx, 0
cmovne esi, ecx
test eax, eax
jne 0x100466c8
add dword [esp + 0x18], esi
jmp 0x100462e5
mov ebx, dword [esp + 0x80]
xor eax, eax
xor esi, esi
jmp 0x1004624a
xor edi, edi
movzx ecx, word [edx + edi*2 + 0x1c]
add ecx, dword [esp + 0x4c]
mov dword [esp + 0x30], ecx
sub ecx, esi
js 0x10046592
cmp ecx, ebx
jge 0x10046592
lea esi, [ecx + ecx]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 8]
add esi, dword [edx + 0x40]
sub eax, ecx
jle 0x1004653c
add eax, eax
lea ecx, [esi + 2]
push eax
push esi
push ecx
call sub.VCRUNTIME140.dll_memmove
mov edx, dword [esp + 0x10]
add esp, 0xc
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0x30]
cmp word [eax + ecx*2], 0
je 0x10047332
mov ecx, edx
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0xc0]
push eax
push 1
push dword [esp + 0x38]
push esi
lea eax, [esp + 0xa0]
push eax
call fcn.100481c0
mov edx, dword [esp + 0x18]
add esp, 0x14
test eax, eax
jne 0x100466c8
mov al, byte [edx + 0xc]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
inc dword [esp + 0x18]
inc edi
movzx ecx, al
cmp edi, ecx
jae 0x100462f8
jmp 0x100464fd
mov eax, dword [edx + 0x34]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x20]
mov ebx, esi
mov dword [esp + 0x18], 0
mov dword [esp + 0x44], edi
mov eax, dword [eax + 0x28]
add eax, ecx
mov dword [esp + 0x30], eax
movzx eax, byte [edx + 0xa]
xor edx, edx
add eax, dword [esp + 0x34]
lea eax, [ecx + eax + 8]
mov dword [esp + 0x54], eax
xor eax, eax
mov ecx, dword [esp + 0xc8]
mov esi, dword [ecx + ebx*4]
cmp esi, dword [esp + 0x54]
jb 0x1004663d
cmp esi, dword [esp + 0x30]
jae 0x1004663d
mov ecx, dword [esp + 0xcc]
movzx ecx, word [ecx + ebx*2]
lea edi, [esi + ecx]
cmp edx, edi
je 0x10046646
test edx, edx
je 0x10046627
sub edx, dword [esp + 0x20]
mov dword [esp + 0x60], ecx
mov ecx, 0xffff
and eax, ecx
and edx, ecx
mov ecx, dword [esp + 4]
push eax
call fcn.10047830
mov ecx, dword [esp + 0x64]
add esp, 4
cmp edi, dword [esp + 0x30]
mov edi, dword [esp + 0x44]
ja 0x10047327
inc dword [esp + 0x18]
mov edx, esi
mov eax, ecx
inc ebx
cmp dword [esp + 0x10], ebx
jne 0x100465d9
jmp 0x1004664e
mov edi, dword [esp + 0x44]
add ecx, eax
jmp 0x10046635
test edx, edx
je 0x1004666c
sub edx, dword [esp + 0x20]
mov ecx, 0xffff
and eax, ecx
and edx, ecx
mov ecx, dword [esp + 4]
push eax
call fcn.10047830
add esp, 4
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
cmp ecx, edi
jg 0x100471e8
mov esi, dword [esp + 4]
mov dword [esp + 0x18], ecx
lea edx, [edi + edi]
mov eax, dword [esi + 0x40]
lea ecx, [eax + ecx*2]
push edx
push ecx
push eax
call sub.VCRUNTIME140.dll_memmove
mov edx, esi
add esp, 0xc
mov eax, edi
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x5c]
sub eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
jmp 0x10046292
mov esi, dword [esp + 0xc0]
mov ecx, dword [esp + 0x78]
lea eax, [edi - 1]
jmp 0x10046238
cmp dword [esp + 0x14], 0
jle 0x1004672b
mov eax, dword [esp + 0x14]
lea esi, [eax + 1]
mov eax, dword [esp + 0x10]
lea edi, [eax + eax]
mov eax, dword [esp + 0xcc]
cmp word [eax + edi], 0
jne 0x10046722
mov eax, dword [esp + 0xc8]
mov ebx, dword [esp + 0xc4]
mov ecx, dword [ebx + 0x4c]
mov eax, dword [eax + edi*2]
mov dword [esp + 0x18], eax
call dword [section..00cfg]
push dword [esp + 0x18]
push ebx
mov ebx, dword [esp + 0x10]
call ecx
add esp, 8
mov ecx, dword [esp + 0xcc]
mov word [ecx + edi], ax
dec esi
add edi, 2
cmp esi, 1
jg 0x100466dd
mov esi, dword [esp + 4]
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0xc0]
push esi
push dword [esp + 0x18]
call fcn.10047fd0
mov ecx, esi
add esp, 8
test eax, eax
mov dword [esp + 0x8c], eax
je 0x10046373
jmp 0x100467a1
cmp cl, 1
jne 0x1004676e
mov eax, dword [esp + 0x2c]
cmp word [eax + 0x18], 0
je 0x100473d1
mov ebx, dword [esp + 0x28]
cmp byte [ebx + 0x11], 0
setne al
cmp byte [esp + 0x7c], 0
sete cl
and cl, al
mov eax, dword [esp + 0x70]
and al, cl
cmp al, 1
je 0x10046cb2
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0xc]
cmp ecx, edi
jle 0x10046d5e
mov esi, dword [esp + 0xc8]
test esi, esi
je 0x100472e1
cmp dword [0x101d2020], 0
je 0x10047201
mov edi, dword [0x101d47e8]
test edi, edi
je 0x100467e0
mov ecx, dword [0x101d2070]
cmp ecx, 0x10019bd0
jne 0x10047218
push edi
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov ecx, dword [0x101d204c]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ecx, dword [0x101d2044]
sub dword [0x101d4794], eax
dec dword [0x101d47b8]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov esi, dword [0x101d47e8]
test esi, esi
je 0x100472e1
mov ecx, dword [0x101d2078]
mov edi, dword [esp + 0x24]
cmp ecx, 0x10019c10
jne 0x10047229
push esi
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov esi, dword [esp + 0xc]
lea ebx, [esp + 0x18c]
mov eax, dword [ebx]
test eax, eax
jne 0x10046d40
add ebx, 4
dec dword [esp + 0x68]
jne 0x10046846
test esi, esi
jle 0x10046882
lea ebx, [esp + 0x178]
mov eax, dword [ebx]
test eax, eax
je 0x1004687c
mov ecx, dword [eax + 0x48]
test byte [ecx + 0x1c], 0x20
jne 0x10046fa8
call fcn.10025e90
add ebx, 4
dec esi
jne 0x10046864
mov esi, dword [esp + 0x8c]
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x48]
test ecx, ecx
jne 0x10046bf5
mov eax, dword [esp + 0x64]
mov dword [esp + 0x50], eax
test edi, edi
mov byte [edi + 0xc], 0
je 0x100468bb
mov ecx, dword [edi + 0x48]
test byte [ecx + 0x1c], 0x20
jne 0x1004723a
call fcn.10025e90
mov al, byte [ebx + 0x44]
mov edx, dword [esp + 0x74]
dec al
mov byte [ebx + 0x44], al
movsx eax, al
lea eax, [ebx + eax*4 + 0x78]
mov edi, dword [eax]
mov eax, dword [esp + 0x50]
test esi, esi
mov dword [ebx + 0x74], edi
je 0x10045144
jmp 0x10047477
mov dword [esp + 0x50], eax
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 8]
test eax, eax
je 0x10046904
cmp eax, ebx
je 0x100468ff
cmp byte [eax], 0
je 0x10047444
mov eax, dword [eax + 0x18]
jmp 0x100468ee
xor eax, eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x178], eax
mov eax, dword [edi + 0x34]
mov ecx, dword [edi + 0x48]
mov dword [esp + 8], eax
mov eax, dword [ecx + 0x14]
test byte [ecx + 0x1c], 4
je 0x10046c84
mov edx, dword [eax + 0x18]
cmp edx, dword [ecx + 0x18]
jb 0x10046c84
cmp dword [eax + 0x60], 0
je 0x10046c63
call fcn.1001ee10
mov ecx, dword [esp + 8]
mov esi, eax
test eax, eax
mov dword [esp + 0xc0], eax
jne 0x100474d9
lea edx, [esp + 0x90]
push 0
push dword [edi + 4]
lea eax, [esp + 0x180]
push eax
call fcn.1002aeb0
add esp, 0xc
mov esi, eax
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x90]
test esi, esi
mov dword [esp + 4], eax
jne 0x10047396
movzx ebx, byte [edi + 9]
mov esi, dword [edi + 0x38]
cmp dword [eax + 4], 1
mov ecx, dword [edi + 0x34]
mov edx, eax
mov edi, 0
mov eax, 0x64
cmove edi, eax
movzx eax, word [esi + ebx + 5]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], ecx
mov ecx, dword [ecx + 0x28]
mov ebx, dword [edx + 0x38]
shl eax, 0x10
bswap eax
sub ecx, eax
lea edx, [ebx + eax]
add eax, esi
push ecx
push eax
push edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x24]
add esi, dword [esp + 0x10]
add edi, ebx
movzx eax, word [ecx + 0x12]
movzx ecx, word [ecx + 0x18]
lea eax, [eax + ecx*2]
push eax
push esi
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 4]
mov byte [ecx], 0
mov edi, ecx
call fcn.10026390
test eax, eax
jne 0x1004734b
mov ecx, edi
call fcn.10044b10
test eax, eax
jne 0x1004734b
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x24]
cmp byte [eax + 0x11], 0
je 0x10046cab
mov ecx, dword [esp + 4]
call fcn.1002c190
mov esi, eax
mov dword [esp + 0xc0], eax
mov ecx, dword [esp + 8]
cmp byte [ecx + 0x11], 0
je 0x10046a74
mov edx, dword [esp + 0x178]
lea eax, [esp + 0xc0]
push eax
push dword [edi + 4]
push 5
call fcn.1002c340
add esp, 0xc
mov esi, dword [esp + 0xc0]
test esi, esi
jne 0x1004739f
movzx edx, byte [edi + 0xc]
mov esi, dword [esp + 4]
lea ecx, [edi + 0x1c]
add edx, edx
lea eax, [esi + 0x1c]
push edx
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
movzx edx, byte [edi + 0xc]
lea eax, [esi + 0x24]
lea ecx, [edi + 0x24]
shl edx, 2
push edx
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov al, byte [edi + 0xc]
mov ecx, edi
mov byte [esi + 0xc], al
mov eax, dword [esi + 0x38]
movzx edx, byte [eax]
and edx, 0xfffffff7
call fcn.10029320
mov eax, dword [edi + 0x38]
movzx edi, byte [edi + 9]
mov dword [esp + 8], eax
push dword [esp + 0x178]
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
mov ecx, dword [esp + 8]
mov dword [edi + ecx + 8], eax
mov ecx, dword [esp + 0x6c]
mov dword [ecx], esi
xor esi, esi
mov edx, dword [esp + 0x74]
test esi, esi
jne 0x10047473
mov eax, dword [esp + 0x24]
mov byte [ebx + 0x44], 1
mov dword [ebx + 0x46], 0
xor esi, esi
mov dword [ebx + 0x78], eax
mov eax, dword [esp + 0x6c]
jmp 0x100468ce
mov eax, dword [esi]
mov dword [esp + 4], eax
mov eax, dword [eax + 0x38]
push dword [eax + 8]
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
mov edx, eax
lea eax, [esp + 0x8c]
mov ecx, ebx
push eax
mov eax, dword [esp + 8]
push dword [eax + 4]
push 5
call fcn.1002c340
add esp, 0xc
add esi, 4
dec edi
jne 0x10046b18
jmp 0x10046791
xor edx, edx
mov dword [esp + 0x70], 0
jmp 0x10045e98
movzx ecx, byte [esi + 9]
add ecx, 8
jmp 0x1004529e
mov esi, dword [eax + 0x28]
test esi, esi
jne 0x10046d37
mov edx, dword [eax + 0x94]
cmp edx, dword [eax + 0x98]
ja 0x1004749a
call fcn.10029840
jmp 0x100451bd
xor ebx, ebx
jmp 0x1004525e
mov eax, dword [esp + 0x88]
jmp 0x10045c5e
mov ecx, dword [esp + 8]
mov ecx, dword [ecx + 0x3c]
cmp ecx, edi
jb 0x10046bbe
add eax, edi
cmp ecx, eax
jb 0x100474a4
movzx eax, word [esp + 0xa2]
push dword [eax + edi - 4]
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
mov edi, dword [esp + 0x10]
mov edx, eax
lea eax, [esp + 0x8c]
mov ecx, dword [edi + 0x34]
push eax
push dword [edi + 4]
push 3
call fcn.1002c340
add esp, 0xc
jmp 0x10045fee
call fcn.10023100
jmp 0x10046899
mov edx, dword [esp + 8]
cmp dword [edi + 4], edx
je 0x10046c2e
mov ecx, dword [eax + 4]
cmp edx, 1
mov dword [edi + 0x38], ecx
mov dword [edi + 0x48], eax
mov eax, dword [esp + 0x28]
mov ecx, 0x64
mov dword [edi + 0x34], eax
mov eax, 0
mov dword [edi + 4], edx
cmove eax, ecx
mov byte [edi + 9], al
mov ecx, edi
call fcn.10026390
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 4]
test eax, eax
je 0x1004534d
mov ecx, dword [esp + 8]
mov ebx, eax
mov dword [esp + 0x88], ecx
mov ecx, dword [edi + 0x48]
call fcn.10025e10
mov edx, dword [esp + 4]
jmp 0x10046f58
mov ecx, dword [esp + 8]
mov dword [esp + 0xc0], 0
jmp 0x1004695b
mov edx, dword [esp + 0x1c]
lea ebx, [edx + ebx - 2]
jmp 0x1004525e
mov esi, dword [eax + 0x28]
test esi, esi
jne 0x100474d2
mov edx, dword [eax + 0x94]
cmp edx, dword [eax + 0x98]
ja 0x100474e8
call fcn.10029840
jmp 0x10046946
xor esi, esi
jmp 0x10046a47
mov edi, dword [esp + 0xc]
lea esi, [esp + 0x178]
jmp 0x10046b18
mov ecx, edi
call fcn.10044b10
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x28]
test eax, eax
mov dword [esp + 0x8c], eax
je 0x10045362
mov eax, dword [esp + 8]
mov dword [esp + 0x88], eax
jmp 0x1004731e
cmp edi, dword [esp + 0x68]
lea eax, [esp + 0x18c]
lea ecx, [esp + 0x178]
cmovg eax, ecx
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esi + 0x38]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
jmp 0x10045ec6
xor ebx, ebx
jmp 0x10045267
mov ecx, dword [esp + 0x2c]
call fcn.10044b10
test eax, eax
je 0x100451d5
mov esi, eax
mov byte [edi + 0xc], 0
jmp 0x100468a9
mov ecx, dword [eax + 0x48]
test byte [ecx + 0x1c], 0x20
jne 0x100474f2
call fcn.10025e90
jmp 0x10046850
xor eax, eax
jmp 0x100458f6
cmp edi, ecx
mov eax, dword [esp + 0x8c]
lea esi, [esp + ecx*4 + 0x18c]
cmovl edi, ecx
sub edi, ecx
inc edi
test eax, eax
jne 0x10046d8f
mov edx, dword [esi]
mov ecx, dword [edx + 0x34]
push dword [edx + 4]
call fcn.10043480
add esp, 4
mov dword [esp + 0x8c], eax
add esi, 4
dec edi
je 0x100467a1
jmp 0x10046d74
cmp byte [edi + 0xc], 1
jne 0x100451df
movzx eax, word [edi + 0x1c]
cmp ax, word [edi + 0x18]
jne 0x100451df
mov ecx, dword [esp + 0x2c]
cmp dword [ecx + 4], 1
je 0x100451df
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x58]
cmp word [ecx + 0x18], dx
jne 0x100451df
test ax, ax
je 0x1004759f
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x90]
mov edi, dword [eax + 0x34]
xor eax, eax
mov ecx, edi
push eax
push eax
lea eax, [esp + 0x164]
push eax
call fcn.1002aeb0
add esp, 0xc
mov esi, eax
test eax, eax
mov dword [esp + 0x178], eax
jne 0x100475c2
mov ebx, dword [esp + 0x24]
mov esi, dword [ebx + 0x24]
mov dword [esp + 0x148], esi
mov ecx, dword [ebx + 0x4c]
call dword [section..00cfg]
push esi
push ebx
call ecx
add esp, 8
mov esi, dword [esp + 0x90]
mov edx, 0xd
mov word [esp + 0x134], ax
mov ecx, esi
call fcn.10029320
xor eax, eax
lea ecx, [esp + 0xc0]
xor edx, edx
inc eax
mov dword [esp + 0xc0], eax
lea eax, [esp + 0x148]
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], eax
lea eax, [esp + 0x134]
mov dword [esp + 0xcc], eax
mov eax, dword [ebx + 0x3c]
mov ebx, esi
mov dword [esp + 0xd0], eax
mov dword [esp + 0xe8], 2
push esi
xor eax, eax
inc eax
push eax
call fcn.10047fd0
add esp, 8
test eax, eax
mov dword [esp + 0x178], eax
je 0x100475cf
mov esi, eax
test ebx, ebx
je 0x100475c2
mov ecx, dword [ebx + 0x48]
call fcn.10025e10
jmp 0x100475c2
lea ecx, [esp + 0xc0]
call fcn.10048180
mov eax, dword [esp + 0xcc]
mov dword [esp + 4], eax
jmp 0x10045a77
mov esi, dword [esp + 0x38]
jmp 0x10045c0d
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
mov ecx, dword [edi + 0x50]
mov esi, dword [eax + esi*4 - 4]
call dword [section..00cfg]
lea eax, [esp + 0x90]
push eax
push esi
push edi
call ecx
add esp, 0xc
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x94]
mov esi, dword [esp + 0x1c]
mov ecx, 0x7f
cmp ecx, edx
mov ecx, 0
sbb ecx, eax
lea ecx, [esi + 4]
jb 0x10047559
mov byte [ecx], dl
mov dword [esp + 8], 5
mov dword [esp + 4], esi
xor esi, esi
jmp 0x10046153
mov dword [esp + 0x88], edi
lea eax, [edx*4 + 4]
mov dword [esp + 0x8c], ebx
push eax
push 0
lea eax, [esp + 0x194]
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [esp + 0xc], 0
jmp 0x100467a1
mov edi, dword [esp + 0x20]
mov eax, edx
jmp 0x10045b3b
mov edi, ecx
lea ecx, [esp + 0xc0]
mov edx, esi
call fcn.10048180
mov ecx, edi
jmp 0x10045897
mov dword [esp + 0xc], esi
mov esi, dword [ecx + 0x14]
dec dword [esi + 0x78]
mov eax, dword [esi + 0x88]
mov dword [ecx + 0x10], eax
mov dword [esi + 0x88], ecx
mov edx, dword [esi + 0x98]
mov eax, dword [ecx + 0x18]
mov esi, dword [esi + 0x3c]
mov edi, edx
dec eax
sar edi, 0x1f
imul edi, eax
mul edx
mov dword [esp + 4], eax
mov eax, dword [ecx + 4]
mov ecx, dword [esi]
add edx, edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x10], edx
mov ecx, dword [ecx + 0x48]
mov dword [esp + 8], eax
call dword [section..00cfg]
push dword [esp + 8]
push dword [esp + 0x14]
push dword [esp + 0xc]
push esi
mov esi, dword [esp + 0x1c]
call ecx
add esp, 0x10
jmp 0x1004687c
push 0x101b128f
push 0x11c12
push str.database_corruption
push str._s_at_line__d_of___.10s_
mov esi, 0xb
push esi
call sym.nss3.dll_sqlite3_log
add esp, 0x14
mov dword [esp + 0x8c], esi
jmp 0x100467a1
call dword [section..00cfg]
push 0
lea eax, [esp + 0x94]
push eax
push edi
push esi
call ecx
jmp 0x1004531a
mov ecx, dword [esp + 0x24]
mov edi, edx
mov esi, eax
call fcn.10044b10
mov edx, edi
mov edi, dword [esp + 0x24]
test eax, eax
mov eax, esi
je 0x10045152
xor esi, esi
jmp 0x10047477
mov ebx, dword [esp + 8]
xor eax, eax
jmp 0x10046477
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x20]
mov byte [eax + ecx], 0
inc ecx
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xcc]
inc word [ecx + eax*2]
mov ebx, dword [esp + 0xc0]
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0x28]
cmp word [eax + ebx*2], 4
jae 0x1004563a
jmp 0x10047089
mov edi, dword [esp + 0x2c]
mov ecx, dword [edi + 0x4c]
call dword [section..00cfg]
push dword [esp + 4]
push edi
mov edi, dword [esp + 0x1c]
call ecx
add esp, 8
movzx eax, ax
mov dword [esp + 8], eax
jmp 0x1004614f
push 0x101b128f
push 0x11b00
jmp 0x10047120
push 0x101b128f
push 0x11b18
jmp 0x10047120
push 0x101b128f
push 0x11b7d
jmp 0x10047120
push 0x101b128f
push 0x11bc8
push str.database_corruption
push str._s_at_line__d_of___.10s_
mov esi, 0xb
push esi
call sym.nss3.dll_sqlite3_log
add esp, 0x14
mov dword [esp + 0x8c], esi
jmp 0x10046f79
movzx ecx, word [ebx + 0x1c]
cmp dword [esp + 0x10], ecx
jne 0x10045387
mov edi, dword [ebx + 0x24]
mov dword [esp + edx*4 + 0x16c], edi
push dword [edi]
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
mov ecx, dword [ebx + 0x4c]
mov dword [esp + 8], eax
call dword [section..00cfg]
push edi
push ebx
call ecx
add esp, 8
mov ecx, dword [esp + 4]
movzx eax, ax
mov dword [esp + ecx*4 + 0x130], eax
mov byte [ebx + 0xc], 0
jmp 0x1004541a
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
sub eax, dword [ebx + 0x38]
lea ecx, [eax + edi]
cmp ecx, dword [edx + 0x28]
jg 0x100472ea
add eax, dword [esp + 0x64]
push edi
push dword [esp + 0x40]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 4]
sub ecx, dword [ebx + 0x38]
add ecx, dword [esp + 0x64]
mov dword [esp + eax*4 + 0x16c], ecx
jmp 0x100453fd
push 0x101b128f
push 0x11b9e
jmp 0x10047120
push 0x101b128f
push 0x118e8
jmp 0x1004701d
mov esi, 7
jmp 0x10046889
mov ecx, dword [0x101d2044]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
jmp 0x100472e1
call dword [section..00cfg]
push edi
call ecx
add esp, 4
jmp 0x100467e0
call dword [section..00cfg]
push esi
call ecx
add esp, 4
jmp 0x1004683b
mov edi, dword [ecx + 0x14]
dec dword [edi + 0x78]
mov eax, dword [edi + 0x88]
mov dword [ecx + 0x10], eax
mov dword [edi + 0x88], ecx
mov edx, dword [edi + 0x98]
mov eax, dword [ecx + 0x18]
mov edi, dword [edi + 0x3c]
mov ebx, edx
dec eax
sar ebx, 0x1f
imul ebx, eax
mul edx
mov dword [esp + 4], eax
mov eax, dword [ecx + 4]
mov ecx, dword [edi]
add edx, ebx
mov ebx, dword [esp + 0x48]
mov dword [esp + 0xc], edx
mov ecx, dword [ecx + 0x48]
mov dword [esp + 8], eax
call dword [section..00cfg]
push dword [esp + 8]
push dword [esp + 0x10]
push dword [esp + 0xc]
push edi
call ecx
add esp, 0x10
jmp 0x100468bb
mov dword [esp + 0x88], edi
push 0x101b128f
push 0x1055b
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call sym.nss3.dll_sqlite3_log
add esp, 0x14
mov ebx, 0xb
mov edx, esi
jmp 0x10046f58
mov dword [esp + 0x8c], 7
mov dword [esp + 0xc], 0
mov edi, dword [esp + 0x24]
jmp 0x1004683b
mov eax, dword [esp + 8]
mov dword [esp + 0x88], eax
push 0x101b128f
push 0x11abd
push str.database_corruption
push str._s_at_line__d_of___.10s_
mov esi, 0xb
push esi
call sym.nss3.dll_sqlite3_log
add esp, 0x14
mov dword [esp + 0x8c], esi
push dword [esp + 0xc]
jmp 0x10046f67
mov ebx, dword [esp + 0x14]
xor ecx, ecx
jmp 0x1004667c
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0xc0]
call fcn.10048180
mov edx, dword [esp + 4]
jmp 0x10046552
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x24]
jmp 0x10046a3e
inc dword [esp + 0xc]
mov dword [esp + 0x8c], edx
jmp 0x100467a1
mov dword [esp + 0x70], 0
jmp 0x10045e94
lea ecx, [esp + 0xc0]
mov edx, edi
call fcn.10048180
mov ecx, dword [esp + 4]
jmp 0x100459c6
call fcn.100295e0
jmp 0x10045bfa
mov ebx, dword [esp + 0x48]
jmp 0x10046a47
mov eax, dword [esp + 0x6c]
cmp dword [esp + 4], 0
mov dword [eax], 0
je 0x100473bc
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0x48]
call fcn.10025e10
mov ebx, dword [esp + 0x48]
jmp 0x10046aef
mov ecx, esi
call fcn.10023080
jmp 0x10045e7b
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x178]
movzx eax, byte [eax + 9]
cmp dword [esi + 0x14], eax
jl 0x1004676e
xor edx, edx
mov ecx, esi
dec edx
call fcn.10047ba0
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x8c]
mov ecx, esi
push eax
call fcn.10047f10
add esp, 4
cmp dword [esp + 0x8c], 0
jne 0x10046791
mov ecx, dword [esi + 0x34]
mov edx, esi
push dword [esi + 4]
call fcn.10043480
add esp, 4
mov dword [esp + 0x8c], eax
jmp 0x10046791
call fcn.10023080
jmp 0x10045e18
mov ecx, dword [eax + 0x74]
cmp ecx, dword [ebx + 0x74]
jne 0x100468ff
push 0x101b128f
push 0x11d8e
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call sym.nss3.dll_sqlite3_log
add esp, 0x14
mov esi, 0xb
mov eax, dword [esp + 0x50]
test eax, eax
je 0x10047482
mov ecx, eax
call fcn.10023100
mov ecx, dword [esp + 0x198]
xor ecx, ebp
call fcn.10192ef0
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.100295e0
jmp 0x100451bd
push 0x101b128f
push 0x10244
push str.database_corruption
push str._s_at_line__d_of___.10s_
mov edi, 0xb
push edi
call sym.nss3.dll_sqlite3_log
add esp, 0x14
mov dword [esp + 0x8c], edi
jmp 0x10045fee
mov dword [esp + 0xc0], esi
mov eax, dword [esp + 0x6c]
mov dword [eax], 0
jmp 0x10046aef
call fcn.100295e0
jmp 0x10046946
mov esi, dword [ecx + 0x14]
dec dword [esi + 0x78]
mov eax, dword [esi + 0x88]
mov dword [ecx + 0x10], eax
mov dword [esi + 0x88], ecx
mov edx, dword [esi + 0x98]
mov eax, dword [ecx + 0x18]
mov esi, dword [esi + 0x3c]
mov edi, edx
dec eax
sar edi, 0x1f
imul edi, eax
mul edx
mov dword [esp + 4], eax
mov eax, dword [ecx + 4]
mov ecx, dword [esi]
add edx, edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x10], edx
mov ecx, dword [ecx + 0x48]
mov dword [esp + 8], eax
call dword [section..00cfg]
push dword [esp + 8]
push dword [esp + 0x14]
push dword [esp + 0xc]
push esi
mov esi, dword [esp + 0x1c]
call ecx
add esp, 0x10
jmp 0x10046850
mov esi, 0x3fff
mov edi, 0
cmp esi, edx
sbb edi, eax
jb 0x10047582
mov eax, edx
and dl, 0x7f
mov dword [esp + 8], 6
shr eax, 7
or al, 0x80
mov byte [ecx], al
mov byte [ecx + 1], dl
jmp 0x10047592
push eax
call fcn.10042820
add esp, 4
add eax, 4
mov dword [esp + 8], eax
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
jmp 0x10046f46
push 0x101b128f
push 0x11958
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call sym.nss3.dll_sqlite3_log
add esp, 0x14
mov esi, 0xb
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x24]
jmp 0x100468a1
mov eax, dword [edi + 0x28]
movzx ecx, word [ebx + 0x12]
mov edx, ebx
movzx edx, word [esp + 0x134]
sub eax, ecx
sub eax, edx
add eax, 0xfffffffe
mov dword [ebx + 0x14], eax
cmp byte [edi + 0x11], 0
je 0x1004763b
mov edx, dword [esp + 0x15c]
lea eax, [esp + 0x178]
mov ecx, edi
push eax
mov eax, dword [esp + 0x30]
push dword [eax + 4]
push 5
call fcn.1002c340
add esp, 0xc
movzx eax, word [esp + 0x134]
cmp ax, word [ebx + 0x10]
jbe 0x1004763b
lea eax, [esp + 0x178]
mov ecx, ebx
mov edx, ebx
push eax
push dword [esp + 0x14c]
call fcn.1002c8c0
add esp, 8
mov ecx, dword [esp + 0x24]
movzx esi, word [ecx + 0x1a]
mov edi, dword [ecx + 0x38]
mov eax, dword [ecx + 0x40]
movzx ecx, word [ecx + 0x18]
movzx eax, word [eax + ecx*2 - 2]
push eax
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ushort
add esp, 4
and eax, esi
xor edx, edx
add eax, edi
mov dword [esp + 0x148], eax
lea ecx, [eax + 1]
cmp edx, 7
mov dword [esp + 0x148], ecx
ja 0x1004767f
inc edx
cmp byte [eax], 0
mov eax, ecx
js 0x10047668
lea edx, [ecx + 9]
lea eax, [esp + 0xb7]
lea esi, [ecx + 1]
mov dword [esp + 0x148], esi
mov cl, byte [ecx]
mov byte [eax], cl
inc eax
test cl, cl
jns 0x100476a7
mov ecx, dword [esp + 0x148]
cmp ecx, edx
jb 0x10047689
cmp dword [esp + 0x178], 0
jne 0x100476dd
mov ecx, dword [esp + 0x2c]
lea edi, [esp + 0xb3]
lea esi, [esp + 0x178]
sub eax, edi
movzx edx, word [ecx + 0x18]
push esi
mov esi, dword [esp + 0x28]
push dword [esi + 4]
push 0
push eax
push edi
call fcn.10044d50
add esp, 0x14
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0x38]
movzx edi, byte [eax + 9]
push dword [esp + 0x15c]
call sub.api_ms_win_crt_utility_l1_1_0.dll__byteswap_ulong
add esp, 4
mov dword [edi + esi + 8], eax
mov eax, dword [esp + 0x90]
test eax, eax
je 0x1004770e
mov ecx, dword [eax + 0x48]
call fcn.10025e10
mov esi, dword [esp + 0x178]
jmp 0x100475c2