Function at 0x4599ac
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xfc
and dword [esp + 0x64], 0
push ebx
mov ebx, ecx
mov dword [esp + 0x54], 1
push esi
push edi
mov esi, edx
mov dword [esp + 0x64], ebx
mov edi, dword [ebx]
mov dword [esp + 0x60], esi
mov dword [esp + 0x3c], edi
call fcn.00456ba5
mov dword [esp + 0x18], eax
test esi, esi
je 0x45abec
cmp byte [edi + 0x49], 0
jne 0x45abec
xor eax, eax
cmp dword [ebx + 0x24], eax
jne 0x45abec
push eax
push eax
push eax
push 0x15
pop edx
mov ecx, ebx
call fcn.0044604e
add esp, 0xc
test eax, eax
jne 0x45abec
push 0x30
push eax
lea eax, [esp + 0x80]
push eax
call fcn.004722c0
mov eax, dword [ebp + 8]
add esp, 0xc
push 8
pop ecx
cmp byte [eax], cl
ja 0x459a47
mov edx, dword [esi + 0x2c]
mov ecx, edi
call fcn.004405d0
and dword [esi + 0x2c], 0
and dword [esi + 8], 0xfffffffe
push 0
mov edx, esi
mov ecx, ebx
call fcn.004594f3
pop ecx
push 9
xor eax, eax
lea edi, [esp + 0xac]
cmp dword [ebx + 0x24], 0
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [esi + 0x2c]
mov edi, dword [esi + 0x1c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0x24], edi
jne 0x45abb4
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x49], 0
jne 0x45abb4
mov eax, dword [esi + 8]
shr eax, 3
and eax, 1
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 8]
cmp byte [eax], 9
jne 0x459aaf
mov edx, esi
mov ecx, ebx
call fcn.004566a7
mov eax, dword [ebp + 8]
xor edx, edx
cmp dword [esi + 0x30], edx
jmp 0x459ba8
cmp edx, dword [edi]
jge 0x459bb2
imul eax, edx, 0x48
mov dword [esp + 0x28], eax
test byte [eax + edi + 0x2c], 8
mov ecx, dword [eax + edi + 0x1c]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + edi + 0x18]
mov dword [esp + 0x14], ecx
je 0x459b1b
mov edx, dword [eax + edi + 0x34]
mov ecx, dword [esi + 0x20]
call fcn.004438ef
test eax, eax
je 0x459b13
mov eax, dword [esp + 0x3c]
mov ecx, 0x2000
test word [eax + 0x44], cx
jne 0x459b13
mov edx, dword [esp + 0x28]
and byte [edx + edi + 0x2c], 0xd7
mov edx, dword [edx + edi + 0x34]
mov ecx, dword [esi + 0x20]
call fcn.00455315
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x459ba0
mov eax, dword [eax]
movsx ecx, word [ecx + 0x2a]
cmp ecx, dword [eax]
jne 0x459bd9
mov eax, dword [esp + 0x30]
test byte [eax + 8], 8
jne 0x459ba0
cmp dword [eax + 0x2c], 0
je 0x459b59
test edx, edx
jne 0x459b59
test dword [esi + 8], 0x40000
je 0x459b59
cmp dword [edi], 1
je 0x459ba0
test byte [edi + 0x74], 0xa
jne 0x459ba0
push dword [esp + 0x50]
mov ecx, ebx
push edx
mov edx, esi
call fcn.00458280
mov edx, dword [esp + 0x34]
test eax, eax
mov edi, dword [esi + 0x1c]
pop ecx
pop ecx
push 0xffffffffffffffff
pop eax
cmovne edx, eax
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x49], 0
jne 0x45abb4
mov eax, dword [ebp + 8]
cmp byte [eax], 8
jbe 0x459ba3
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0xa8], eax
mov eax, dword [ebp + 8]
inc edx
cmp dword [esi + 0x30], 0
mov dword [esp + 0x2c], edx
je 0x459ab9
cmp dword [esi + 0x30], 0
je 0x459bff
push eax
mov edx, esi
mov ecx, ebx
call fcn.0045711a
cmp dword [esi + 0x34], 0
mov edi, eax
pop ecx
jne 0x459bd2
mov ecx, ebx
call fcn.00431b22
mov eax, edi
jmp 0x45abef
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx]
push dword [eax]
mov eax, dword [esp + 0x18]
push dword [eax]
movsx eax, word [eax + 0x2a]
push eax
push 0x4a6728
push ebx
call fcn.0041c854
add esp, 0x14
jmp 0x45abb4
xor ecx, ecx
mov dword [esp + 0x30], ecx
cmp dword [edi], ecx
jle 0x459ee9
mov edi, dword [esp + 0x18]
imul eax, ecx, 0x48
mov ecx, dword [esp + 0x24]
add ecx, 8
add ecx, eax
mov dword [esp + 0x10], ecx
mov eax, dword [ecx + 0x38]
or eax, dword [ecx + 0x3c]
jne 0x459c45
push dword [ecx + 4]
push 0x49a1c0
push dword [ecx + 8]
mov ecx, ebx
push 0x14
pop edx
call fcn.0044604e
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x14], eax
test eax, eax
je 0x459ed4
cmp dword [ecx + 0x18], 0
je 0x459c7b
test byte [ecx + 0x28], 0x10
jne 0x459ed4
push dword [ecx + 0x18]
push dword [ecx + 0x1c]
mov ecx, edi
push 0xe
pop edx
call fcn.00431977
pop ecx
pop ecx
jmp 0x459ed4
mov ecx, esi
call fcn.0043f6c8
add dword [ebx + 0x198], eax
mov ecx, 0x1000
mov eax, dword [esp + 0x3c]
test word [eax + 0x44], cx
jne 0x459cba
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
movzx eax, byte [ecx + 0x24]
shr eax, 5
and eax, 1
push eax
push dword [ecx + 0x2c]
mov ecx, ebx
push dword [esi + 0x20]
call fcn.004586ef
add esp, 0xc
cmp dword [esp + 0x30], 0
mov edx, dword [esp + 0x10]
mov eax, dword [ebx + 0x1b4]
mov dword [esp + 0x58], eax
mov eax, dword [edx + 8]
mov dword [ebx + 0x1b4], eax
jne 0x459d9e
mov eax, dword [esp + 0x24]
cmp dword [eax], 1
je 0x459cef
test byte [eax + 0x74], 0xa
je 0x459d9e
mov edi, dword [esp + 0x18]
mov ecx, edi
call fcn.00431d61
lea esi, [eax + 1]
mov eax, dword [ebx + 0x2c]
push esi
inc eax
push 0
push eax
mov dword [ebx + 0x2c], eax
mov dword [edx + 0x1c], eax
push 0xf
pop edx
call fcn.004318f3
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0xd8]
add esp, 0xc
mov dword [eax + 0x18], esi
push dword [eax + 0x1c]
push 0xd
pop edx
call fcn.00454fc5
add esp, 4
push dword [esp + 0x14]
push 0x4a6750
push 1
push ebx
call fcn.00431ace
mov edx, dword [esp + 0x24]
lea eax, [esp + 0xdc]
push eax
mov ecx, ebx
call fcn.004599ac
mov edx, dword [esp + 0x24]
add esp, 0x14
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 0x10]
mov ax, word [eax + 6]
mov word [ecx + 0x2c], ax
mov ecx, edi
mov eax, dword [esp + 0xd4]
or dword [edx + 0x28], 0x10
mov dword [edx + 0x20], eax
mov edx, dword [edx + 0x1c]
call fcn.00431ba0
lea edx, [esi - 1]
mov ecx, edi
call fcn.00431e98
mov ecx, ebx
call fcn.00443dcd
mov esi, dword [esp + 0x60]
jmp 0x459eab
mov edi, dword [esp + 0x18]
xor eax, eax
mov dword [esp + 0x34], eax
mov ecx, edi
mov eax, dword [ebx + 0x2c]
inc eax
push eax
push 0
mov dword [ebx + 0x2c], eax
mov dword [edx + 0x1c], eax
push 0x43
pop edx
call fcn.00431977
pop ecx
pop ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x44], eax
inc eax
push 8
mov dword [ecx + 0x18], eax
pop eax
test byte [ecx + 0x28], al
jne 0x459de7
push 0x14
pop edx
mov ecx, edi
call fcn.00431955
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x34], eax
mov edx, ecx
mov ecx, dword [esp + 0x24]
call fcn.00459944
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x28], eax
test eax, eax
je 0x459e25
push dword [eax + 0x2c]
push dword [ecx + 0x2c]
mov ecx, edi
push 0x6c
pop edx
call fcn.00431977
mov eax, dword [esp + 0x30]
pop ecx
pop ecx
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 0x14]
mov ax, word [eax + 6]
mov word [ecx + 6], ax
jmp 0x459e61
push dword [ecx + 0x2c]
lea ecx, [esp + 0xd0]
push 0xc
pop edx
call fcn.00454fc5
add esp, 4
push dword [esp + 0x14]
push 0x4a6760
push 1
push ebx
call fcn.00431ace
mov edx, dword [esp + 0x24]
lea eax, [esp + 0xdc]
push eax
mov ecx, ebx
call fcn.004599ac
add esp, 0x14
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x14]
mov ax, word [eax + 6]
mov word [ecx + 0x2c], ax
mov eax, dword [esp + 0x34]
test eax, eax
je 0x459e85
mov edx, eax
mov ecx, edi
call fcn.00431e98
mov eax, dword [esp + 0x10]
mov ecx, edi
push dword [eax + 0x1c]
push 0x3f
pop edx
call fcn.00431963
mov edx, dword [esp + 0x48]
pop ecx
push eax
mov ecx, edi
call fcn.00431e50
pop ecx
mov ecx, ebx
call fcn.00443dcd
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x49], 0
jne 0x45abb4
mov ecx, esi
call fcn.0043f6c8
sub dword [ebx + 0x198], eax
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x18]
mov dword [ebx + 0x1b4], eax
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
inc ecx
mov dword [esp + 0x30], ecx
cmp ecx, dword [eax]
jl 0x459c11
mov eax, dword [esi + 0x20]
xor ecx, ecx
mov edx, dword [esi]
inc ecx
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x28]
mov dword [esp + 0x54], eax
mov al, byte [esi + 8]
and al, cl
mov dword [esp + 0x14], edx
mov byte [esp + 0x23], al
mov byte [esp + 0xcc], al
mov eax, dword [esi + 8]
and al, 9
cmp al, cl
jne 0x459f52
or eax, 0xffffffff
mov ecx, edi
push eax
call fcn.00443747
mov edx, dword [esp + 0x18]
pop ecx
test eax, eax
jne 0x459f52
mov ecx, dword [esp + 0x3c]
and dword [esi + 8], 0xfffffffe
push eax
call fcn.0043ff3a
mov edx, dword [esp + 0x18]
pop ecx
mov dword [esp + 0x10], eax
mov dword [esi + 0x24], eax
test edi, edi
je 0x459f9a
push dword [edx]
mov edx, edi
mov ecx, ebx
push 0
call fcn.0045613c
mov edx, dword [ebx + 0x28]
mov ecx, eax
push 0xfffffffffffffff7
push ecx
push 0
lea eax, [edx + 1]
mov dword [esp + 0xc4], edx
mov dword [ebx + 0x28], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov eax, dword [edi]
inc ecx
mov edi, dword [esp + 0x2c]
add eax, ecx
push eax
push edx
push 0x6e
pop edx
mov ecx, edi
call fcn.00431a3d
add esp, 0x1c
jmp 0x459fa1
mov edi, dword [esp + 0x18]
or eax, 0xffffffff
mov dword [esp + 0xbc], eax
mov eax, dword [ebp + 8]
cmp byte [eax], 0xc
jne 0x459fc5
mov ecx, dword [esp + 0x14]
push dword [ecx]
mov ecx, edi
push dword [eax + 4]
push 0x6e
pop edx
call fcn.00431977
pop ecx
pop ecx
mov ecx, edi
call fcn.00431bbd
mov ecx, 0x4000
mov dword [esp + 0xe8], eax
test dword [esi + 8], ecx
jne 0x459fe6
mov ecx, 0x140
mov word [esi + 6], cx
push eax
mov edx, esi
mov ecx, ebx
call fcn.00456bc5
cmp dword [esi + 0xc], 0
pop ecx
jne 0x45a016
mov eax, dword [esp + 0xbc]
test eax, eax
js 0x45a016
push 0x6f
mov edx, eax
mov ecx, edi
call fcn.00431e41
or byte [esp + 0xc8], 1
pop ecx
test byte [esi + 8], 1
je 0x45a072
mov esi, dword [ebx + 0x28]
mov edx, dword [esp + 0x60]
push 0xfffffffffffffff7
push ecx
lea eax, [esi + 1]
mov dword [esp + 0xd8], esi
mov dword [ebx + 0x28], eax
mov ecx, ebx
mov edx, dword [edx]
push 0
push 0
call fcn.0045613c
add esp, 0xc
mov ecx, edi
push eax
push 0
push 0
push esi
push 0x6e
pop edx
call fcn.00431a3d
add esp, 0x14
mov dword [esp + 0xd4], eax
mov ecx, edi
push 8
pop eax
mov edx, eax
call fcn.00431e80
mov esi, dword [esp + 0x60]
push 3
pop eax
jmp 0x45a074
xor al, al
cmp dword [esp + 0x50], 0
mov byte [esp + 0xcd], al
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x10]
jne 0x45a1a9
test eax, eax
jne 0x45a1a9
xor ecx, ecx
mov eax, 0x100
cmp byte [esp + 0x23], cl
mov edx, 0x4000
cmovne ecx, eax
mov ax, word [esi + 8]
and ax, dx
mov edx, dword [esp + 0x24]
or cx, ax
movsx eax, word [esi + 6]
push eax
movzx ecx, cx
push ecx
push dword [esi]
mov ecx, ebx
push dword [esp + 0x28]
push dword [esp + 0x50]
call fcn.00466334
mov ecx, eax
add esp, 0x14
mov dword [esp + 0x54], ecx
test ecx, ecx
je 0x45abb4
call fcn.00462559
cmp ax, word [esi + 6]
jge 0x45a0f1
mov word [esi + 6], ax
cmp byte [esp + 0x23], 0
je 0x45a11d
call fcn.0046255e
mov edx, dword [esp + 0x30]
mov ecx, eax
test ecx, ecx
movzx eax, cl
mov ecx, dword [esp + 0x54]
movzx edx, dl
cmovne edx, eax
mov dword [esp + 0x30], edx
mov byte [esp + 0xcd], dl
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x45a151
call fcn.00462563
mov edx, eax
mov dword [esp + 0xac], edx
call fcn.00462568
mov byte [esp + 0xc5], al
xor ecx, ecx
mov eax, dword [esp + 0x1c]
cmp edx, dword [eax]
cmove eax, ecx
mov dword [esp + 0xa8], eax
mov edx, dword [esp + 0xbc]
test edx, edx
js 0x45a167
test eax, eax
jne 0x45a167
mov ecx, edi
call fcn.00431fe3
mov ecx, dword [esp + 0x54]
call fcn.00462571
push eax
call fcn.0046256d
push eax
mov eax, dword [ebp + 8]
mov edx, esi
push eax
lea eax, [esp + 0xd8]
mov ecx, ebx
push eax
lea eax, [esp + 0xb8]
push eax
or eax, 0xffffffff
push eax
call fcn.00455991
mov ecx, dword [esp + 0x6c]
add esp, 0x18
call fcn.00466c27
jmp 0x45ab44
and dword [esp + 0x4c], 0
and dword [esp + 0x28], 0
test eax, eax
je 0x45a1f8
mov edx, dword [esi]
mov ecx, dword [edx]
test ecx, ecx
jle 0x45a1d3
add edx, 0x1a
xor edi, edi
dec ecx
mov word [edx], di
lea edx, [edx + 0x18]
test ecx, ecx
jg 0x45a1c2
mov edi, dword [esp + 0x18]
mov ecx, dword [eax]
test ecx, ecx
jle 0x45a1ed
lea edx, [eax + 0x1a]
xor edi, edi
dec ecx
mov word [edx], di
lea edx, [edx + 0x18]
test ecx, ecx
jg 0x45a1dc
mov edi, dword [esp + 0x18]
push 0x42
pop ecx
cmp word [esi + 6], cx
jle 0x45a1fe
jmp 0x45a1fa
xor ecx, ecx
mov word [esi + 6], cx
mov edx, dword [esp + 0x1c]
mov ecx, eax
push 0xffffffffffffffff
call fcn.00443747
pop ecx
xor ecx, ecx
test eax, eax
push 1
pop eax
cmove ecx, eax
mov dword [esp + 0x44], ecx
mov ecx, edi
call fcn.00431bbd
mov dword [esp + 0x2c], eax
lea edi, [esp + 0xec]
xor eax, eax
push 7
pop ecx
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x78]
mov edi, dword [esp + 0x24]
mov dword [esp + 0xf4], eax
mov eax, dword [ebx + 0x2c]
inc eax
mov dword [esp + 0xec], ebx
mov dword [esp + 0xf0], edi
mov dword [esp + 0x88], eax
test ecx, ecx
je 0x45a26e
mov eax, dword [ecx]
mov dword [esp + 0x84], eax
jmp 0x45a276
and dword [esp + 0x84], 0
mov edx, dword [esp + 0x14]
mov dword [esp + 0x90], ecx
lea ecx, [esp + 0xec]
call fcn.00443ccd
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0xec]
call fcn.00443ccd
mov eax, dword [esp + 0x54]
test eax, eax
je 0x45a2cf
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x45a2c1
mov edx, esi
mov ecx, ebx
call fcn.00459912
mov eax, dword [esi + 0x20]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x54]
mov edx, eax
lea ecx, [esp + 0xec]
call fcn.00443c9f
cmp dword [esi + 0x24], 0
mov eax, dword [esp + 0x98]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xa4]
jne 0x45a31a
cmp dword [esi + 0x28], 0
jne 0x45a31a
cmp eax, 1
jne 0x45a31a
mov edx, dword [esp + 0xa0]
lea eax, [esp + 0x70]
mov ecx, dword [esp + 0x3c]
push eax
mov edx, dword [edx]
call fcn.004587f1
mov byte [esp + 0x3f], al
mov eax, dword [esp + 0xa8]
pop ecx
jmp 0x45a31f
mov byte [esp + 0x3b], 0
and dword [esp + 0x34], 0
test eax, eax
jle 0x45a38e
mov ax, word [esp + 0x104]
xor esi, esi
mov edi, dword [esp + 0x34]
push 8
pop ebx
or ax, bx
lea ecx, [esp + 0xec]
mov word [esp + 0x104], ax
mov eax, dword [esp + 0xa0]
mov edx, dword [eax + esi]
mov edx, dword [edx + 0x14]
call fcn.00443ccd
mov ax, word [esp + 0x104]
lea esi, [esi + 0x10]
mov ecx, 0xfff7
and ax, cx
inc edi
mov word [esp + 0x104], ax
cmp edi, dword [esp + 0xa4]
jl 0x45a339
mov ebx, dword [esp + 0x64]
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x24]
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x49], 0
jne 0x45abb4
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x45a94c
mov eax, dword [ebx + 0x28]
mov edx, ecx
push dword [esp + 0x98]
mov dword [esp + 0x80], eax
mov ecx, ebx
inc eax
push 0
mov dword [ebx + 0x28], eax
call fcn.0045613c
mov edi, dword [esp + 0x20]
mov ecx, edi
push 0xfffffffffffffff7
push eax
push 0
push dword [esp + 0x98]
mov dword [esp + 0xfc], eax
push dword [esp + 0x94]
push 0x6f
pop edx
call fcn.00431a3d
mov dword [esp + 0x90], eax
add esp, 0x1c
mov eax, dword [ebx + 0x2c]
mov ecx, edi
inc eax
mov dword [esp + 0x58], eax
inc eax
mov dword [esp + 0x1c], eax
inc eax
mov dword [ebx + 0x2c], eax
call fcn.00431bbd
inc dword [ebx + 0x2c]
mov ecx, edi
mov dword [esp + 0x64], eax
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0x34], eax
call fcn.00431bbd
mov ecx, dword [ebx + 0x2c]
mov edx, dword [esp + 0x10]
push dword [esp + 0x1c]
mov dword [esp + 0x54], eax
lea eax, [ecx + 1]
add ecx, dword [edx]
mov dword [esp + 0x6c], eax
mov dword [ebx + 0x2c], ecx
push 0
lea eax, [ecx + 1]
mov dword [esp + 0x50], eax
mov eax, dword [edx]
add eax, ecx
mov ecx, edi
push 0x43
pop edx
mov dword [ebx + 0x2c], eax
call fcn.00431977
push dword [esp + 0x60]
mov ecx, edi
push 0
push 0x43
pop edx
call fcn.00431977
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
mov ecx, dword [esp + 0x78]
dec eax
add eax, ecx
push eax
push ecx
push 0
push 0x46
pop edx
mov ecx, edi
call fcn.004318f3
add esp, 0x1c
mov ecx, edi
push dword [esp + 0x50]
push dword [esp + 0x38]
push 0xe
pop edx
call fcn.00431977
push 0
cmp dword [esp + 0x50], 0
mov ecx, 0x240
mov edx, dword [esp + 0x30]
push 0x40
pop eax
cmovne eax, ecx
mov ecx, ebx
movzx eax, ax
push eax
push 0
push dword [esp + 0x24]
push dword [esp + 0x58]
call fcn.00466334
mov edx, eax
add esp, 0x1c
mov dword [esp + 0x6c], edx
test edx, edx
je 0x45abb4
mov ecx, edx
call fcn.00462563
mov ecx, dword [esp + 0x10]
cmp eax, dword [ecx]
jne 0x45a4fc
xor esi, esi
mov dword [esp + 0x5c], esi
jmp 0x45a694
cmp byte [esp + 0x23], 0
je 0x45a50e
test byte [esi + 8], 1
mov edx, str.notnull
je 0x45a513
mov edx, 0x4a6780
mov ecx, ebx
call fcn.004561e6
mov esi, dword [esp + 0x10]
mov dword [esp + 0x5c], 1
mov eax, dword [esi]
mov ecx, eax
mov dword [esp + 0x28], eax
mov edx, eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x4c], eax
test eax, eax
jle 0x45a561
mov eax, dword [esp + 0x94]
add eax, 0xc
cmp dword [eax], edx
jl 0x45a553
inc ecx
inc edx
add eax, 0x18
sub dword [esp + 0x4c], 1
jne 0x45a54d
mov dword [esp + 0x40], ecx
mov edx, ecx
mov ecx, ebx
call fcn.00443d65
mov ecx, ebx
mov dword [esp + 0x24], eax
call fcn.00441dd3
push 0
push 0
push dword [esp + 0x2c]
mov edx, esi
mov ecx, ebx
call fcn.00442cfd
mov ecx, dword [esp + 0xa4]
xor eax, eax
add esp, 0xc
mov dword [esp + 0x4c], eax
test ecx, ecx
jle 0x45a5e5
mov edi, dword [esp + 0x28]
xor esi, esi
mov edx, dword [esp + 0x94]
cmp dword [edx + esi + 0xc], edi
jl 0x45a5d5
mov eax, dword [esp + 0x24]
mov ecx, ebx
add eax, edi
push eax
push dword [edx + esi + 4]
push dword [edx + esi + 8]
mov edx, dword [edx + esi]
call fcn.00441da1
mov ecx, dword [esp + 0xa4]
add esp, 0xc
mov eax, dword [esp + 0x4c]
inc edi
inc eax
add esi, 0x18
mov dword [esp + 0x4c], eax
cmp eax, ecx
jl 0x45a5a0
mov edi, dword [esp + 0x18]
mov ecx, ebx
call fcn.00443d03
mov esi, eax
mov ecx, edi
push esi
push dword [esp + 0x44]
push dword [esp + 0x2c]
push 0x65
pop edx
call fcn.004318f3
add esp, 0xc
mov edx, 0x80
mov ecx, edi
push esi
push dword [esp + 0x80]
call fcn.00431977
mov edx, esi
mov ecx, ebx
call fcn.00443d22
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x2c]
push esi
call fcn.00443d9b
mov ecx, dword [esp + 0x78]
add esp, 0xc
call fcn.00466c27
mov edx, dword [ebx + 0x28]
mov ecx, ebx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x80], edx
lea eax, [edx + 1]
mov dword [ebx + 0x28], eax
call fcn.00443d03
push esi
push eax
push edx
push 0x71
pop edx
mov ecx, edi
mov dword [esp + 0x34], eax
call fcn.004318f3
add esp, 0xc
mov ecx, edi
push dword [esp + 0x2c]
push dword [esp + 0x80]
push 0x23
pop edx
call fcn.00431977
pop ecx
pop ecx
mov ecx, ebx
mov byte [esp + 0x79], 1
call fcn.00441dd3
mov edx, dword [esp + 0x6c]
xor esi, esi
inc esi
cmp dword [esp + 0x44], 0
je 0x45a6ca
mov eax, dword [esp + 0x3c]
test byte [eax + 0x44], 4
jne 0x45a6ca
test esi, esi
jne 0x45a6b4
mov ecx, edx
call fcn.00465a97
test eax, eax
je 0x45a6ca
mov edx, dword [esp + 0xbc]
mov ecx, edi
and dword [esp + 0xa8], 0
call fcn.00431fe3
mov ecx, edi
call fcn.00431d61
mov ecx, ebx
mov dword [esp + 0x40], eax
call fcn.00441dd3
test esi, esi
je 0x45a6fc
push dword [esp + 0x4c]
mov ecx, edi
push dword [esp + 0x2c]
push dword [esp + 0x84]
push 0x7b
pop edx
call fcn.004318f3
add esp, 0xc
mov esi, dword [esp + 0x10]
xor ecx, ecx
mov dword [esp + 0x28], ecx
cmp dword [esi], ecx
jle 0x45a75a
lea edx, [esi + 4]
mov dword [esp + 0x44], edx
mov eax, dword [esp + 0x48]
add eax, ecx
cmp dword [esp + 0x5c], 0
push eax
je 0x45a733
push ecx
push dword [esp + 0x54]
mov ecx, edi
push 0x62
pop edx
call fcn.004318f3
add esp, 0xc
jmp 0x45a742
mov byte [esp + 0x7c], 1
mov ecx, ebx
mov edx, dword [edx]
call fcn.00442c0b
pop ecx
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x44]
inc ecx
add edx, 0x18
mov dword [esp + 0x28], ecx
mov dword [esp + 0x44], edx
cmp ecx, dword [esi]
jl 0x45a711
mov ecx, dword [esp + 0xe4]
push 0xfffffffffffffff7
call fcn.00456133
push eax
push dword [esi]
mov ecx, edi
push dword [esp + 0x54]
push dword [esp + 0x78]
push 0x54
pop edx
call fcn.00431a3d
add esp, 0x14
mov ecx, edi
call fcn.00431d61
mov esi, eax
lea eax, [esi + 1]
push eax
push 0
push eax
push 0x12
pop edx
call fcn.004318f3
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov edx, dword [esp + 0x48]
mov ecx, ebx
push dword [eax]
push dword [esp + 0x6c]
call fcn.00441e1d
push dword [esp + 0x6c]
mov eax, dword [esp + 0x28]
mov ecx, edi
inc eax
push eax
push 0xe
pop edx
call fcn.00431977
push dword [esp + 0x3c]
mov ecx, edi
push dword [esp + 0x30]
push 0x30
pop edx
call fcn.00431977
push dword [esp + 0x68]
mov ecx, edi
push dword [esp + 0x50]
push 0xe
pop edx
call fcn.00431977
mov edx, esi
mov ecx, edi
call fcn.00431e98
lea edx, [esp + 0x98]
mov ecx, ebx
call fcn.00459639
push dword [esp + 0x78]
mov ecx, edi
push 1
push 0x43
pop edx
call fcn.00431977
add esp, 0x28
cmp dword [esp + 0x5c], 0
je 0x45a832
push dword [esp + 0x40]
mov ecx, edi
push dword [esp + 0x80]
push 3
pop edx
call fcn.00431977
pop ecx
pop ecx
jmp 0x45a846
mov ecx, dword [esp + 0x6c]
call fcn.00466c27
mov edx, dword [esp + 0x74]
mov ecx, edi
call fcn.00431fe3
mov esi, dword [esp + 0x1c]
mov ecx, edi
push dword [esp + 0x64]
lea eax, [esi + 1]
push eax
push 0xe
pop edx
call fcn.00431977
mov edx, dword [esp + 0x34]
mov ecx, edi
call fcn.0043198c
mov ecx, edi
call fcn.00431d61
push esi
mov esi, dword [esp + 0x24]
mov edi, eax
push 1
push 0x43
pop edx
mov ecx, esi
call fcn.00431977
mov eax, dword [esp + 0x2c]
mov ecx, esi
inc eax
push eax
push 0x3f
pop edx
call fcn.00431963
mov edx, dword [esp + 0x78]
add esp, 0x14
mov ecx, esi
call fcn.00431bff
call fcn.00431d61
mov esi, eax
lea eax, [esi + 2]
push eax
push dword [esp + 0x5c]
push 0x30
pop edx
call fcn.00431977
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
inc eax
push eax
push 0x3f
pop edx
call fcn.00431963
add esp, 0xc
lea edx, [esp + 0x78]
mov ecx, ebx
call fcn.004595e0
push 0x10
inc esi
push esi
push dword [esp + 0x5c]
push ebx
call fcn.004431b1
mov eax, dword [ebp + 8]
mov ecx, ebx
push edi
push esi
mov esi, dword [esp + 0x78]
mov edx, esi
push eax
lea eax, [esp + 0xe8]
push eax
lea eax, [esp + 0xc8]
push eax
or eax, 0xffffffff
push eax
call fcn.00455991
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
inc eax
push eax
push 0x3f
pop edx
mov ecx, edi
call fcn.00431963
mov edx, dword [esp + 0x7c]
add esp, 0x2c
mov ecx, edi
call fcn.00431bff
lea edx, [esp + 0x78]
mov ecx, ebx
call fcn.00459548
push dword [esp + 0x34]
mov ecx, edi
push 0x3f
pop edx
call fcn.00431963
pop ecx
jmp 0x45ab39
lea edx, [esp + 0x78]
mov ecx, esi
call fcn.00458862
mov dword [esp + 0x58], eax
test eax, eax
je 0x45aa88
mov ecx, dword [ebx]
mov edi, eax
mov edx, dword [edi + 0x48]
call fcn.0045498e
mov ecx, eax
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x34], eax
mov edx, ecx
inc eax
mov dword [esp + 0x28], ecx
mov dword [ebx + 0x28], eax
mov ecx, ebx
xor eax, eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x48], eax
mov eax, dword [edi + 0x1c]
mov dword [esp + 0x44], eax
call fcn.0044a042
push dword [edi]
mov edx, dword [esp + 0x2c]
mov ecx, ebx
push 0
push dword [edi + 0x1c]
call fcn.004460f7
add esp, 0xc
test byte [edi + 0x24], 0x20
je 0x45a9c4
mov ecx, edi
call fcn.00446b5b
mov ecx, eax
mov dword [esp + 0x48], ecx
jmp 0x45a9c8
mov ecx, dword [esp + 0x48]
mov eax, dword [edi + 8]
test eax, eax
je 0x45a9fc
test byte [eax + 0x38], 4
jne 0x45a9f1
movzx edx, word [eax + 0x30]
cmp dx, word [edi + 0x2e]
jge 0x45a9f1
cmp dword [eax + 0x24], 0
jne 0x45a9f1
test ecx, ecx
je 0x45a9ef
cmp dx, word [ecx + 0x30]
jge 0x45a9f1
mov ecx, eax
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x45a9cf
mov dword [esp + 0x48], ecx
test ecx, ecx
je 0x45aa14
mov eax, dword [ecx + 0x2c]
mov edx, ecx
mov ecx, ebx
mov dword [esp + 0x44], eax
call fcn.0044a4e3
mov dword [esp + 0x50], eax
mov edi, dword [esp + 0x18]
mov ecx, edi
push 1
push dword [esp + 0x2c]
push dword [esp + 0x4c]
push dword [esp + 0x40]
push 0x6a
pop edx
call fcn.00431b6e
mov eax, dword [esp + 0x60]
add esp, 0x10
test eax, eax
je 0x45aa4c
push 0xfffffffffffffff7
push eax
or eax, 0xffffffff
mov ecx, edi
mov edx, eax
call fcn.004320a2
pop ecx
pop ecx
mov eax, dword [esp + 0xa0]
mov ecx, edi
push dword [eax + 8]
push dword [esp + 0x38]
push 0x66
pop edx
call fcn.00431977
push dword [esp + 0x3c]
mov ecx, edi
push 0x72
pop edx
call fcn.00431963
mov eax, dword [esp + 0x54]
add esp, 0xc
mov edx, dword [esp + 0x58]
mov ecx, ebx
push eax
call fcn.0045982d
pop ecx
jmp 0x45ab03
lea edx, [esp + 0x78]
mov ecx, ebx
call fcn.00459548
mov al, byte [esp + 0x3b]
mov edx, edi
push 0
movzx eax, al
mov ecx, ebx
push eax
push 0
push dword [esp + 0x7c]
push dword [esp + 0x50]
call fcn.00466334
mov edi, eax
add esp, 0x14
mov dword [esp + 0x74], edi
test edi, edi
je 0x45abb4
lea edx, [esp + 0x78]
mov ecx, ebx
call fcn.00459639
mov ecx, edi
call fcn.00462563
test eax, eax
jle 0x45aaeb
call fcn.00462571
mov edi, dword [esp + 0x18]
mov edx, eax
mov ecx, edi
call fcn.0043198c
jmp 0x45aaef
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x74]
call fcn.00466c27
lea edx, [esp + 0x78]
mov ecx, ebx
call fcn.004595e0
and dword [esp + 0xa8], 0
push 0x10
push dword [esp + 0x30]
push dword [esp + 0x5c]
push ebx
call fcn.004431b1
mov eax, dword [esp + 0x3c]
mov edx, esi
push eax
push eax
mov eax, dword [ebp + 8]
mov ecx, ebx
push eax
push 0
or eax, 0xffffffff
push 0
push eax
call fcn.00455991
add esp, 0x28
mov edx, dword [esp + 0x2c]
mov ecx, edi
call fcn.00431bff
cmp byte [esp + 0x30], 3
jne 0x45ab57
mov edx, str.notnull
mov ecx, ebx
call fcn.004561e6
cmp dword [esp + 0xa8], 0
je 0x45ab9a
cmp dword [esp + 0xac], 0
mov eax, str.sqlite_compileoption_used
mov edx, str.wdth
mov ecx, ebx
cmovle edx, eax
call fcn.004561e6
mov eax, dword [esp + 0x14]
mov edx, esi
push dword [ebp + 8]
mov ecx, ebx
push dword [eax]
lea eax, [esp + 0xb0]
push eax
call fcn.004561fa
add esp, 0xc
mov edx, dword [esp + 0xe8]
mov ecx, edi
call fcn.00431bff
xor eax, eax
cmp dword [ebx + 0x24], eax
setg al
mov dword [esp + 0x5c], eax
mov esi, dword [esp + 0x3c]
mov ecx, esi
mov edx, dword [esp + 0x70]
call fcn.004405d0
mov edx, dword [esp + 0x94]
mov ecx, esi
call fcn.0041a50a
mov edx, dword [esp + 0xa0]
mov ecx, esi
call fcn.0041a50a
mov ecx, ebx
call fcn.00431b22
mov eax, dword [esp + 0x5c]
jmp 0x45abef
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret