Function at 0x413735
Capabilities:
Encode data using base64
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2f4
mov eax, dword [0x48500c]
xor eax, esp
mov dword [esp + 0x2f0], eax
push ebx
push esi
mov esi, ecx
xor ecx, ecx
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0xa0], ecx
mov eax, dword [esi]
mov dword [esp + 8], eax
push edi
mov dword [esp + 0x28], esi
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x14]
mov al, byte [eax + 0x59]
mov byte [esp + 0x60], al
lea eax, [esi + 0x114]
mov ecx, eax
mov dword [esp + 0x84], eax
call fcn.0040a100
xor ecx, ecx
push 7
pop eax
inc ecx
cmp dword [esi + 0x74], eax
je 0x417296
mov eax, dword [esp + 0xc]
xor edx, edx
mov dword [esi + 0x74], edx
mov dword [esi + 0xf8], edx
mov dword [eax + 0x114], edx
cmp dword [eax + 0xa8], edx
jne 0x417283
mov eax, dword [esp + 0x84]
xorps xmm0, xmm0
mov edx, dword [esi + 0x70]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x8c], eax
mov eax, edx
mov dword [esp + 0x14], edx
mov dword [esp + 0xec], 0xffbf
mov dword [esp + 0xf0], pe_nt_image_headers32
movsd qword [esp + 0x100], xmm0
mov ebx, dword [esp + 0xc]
cmp byte [ebx + 0x1e], 0
jne 0x417296
mov ecx, dword [esp + 0xc]
mov edi, dword [esi + 0x14]
imul ebx, eax, 0x14
mov dword [esp + 0x50], edi
mov eax, dword [ecx + 0xb8]
mov dword [esp + 0x3c], ebx
test eax, eax
je 0x4138ad
mov edx, dword [esp + 0xa4]
cmp dword [ecx + 0xc0], edx
jne 0x41389e
push dword [ecx + 0xbc]
call eax
pop ecx
test eax, eax
jne 0x4170af
jmp 0x4138a5
mov eax, dword [esp + 0xa4]
inc eax
mov dword [esp + 0xa4], eax
mov dl, byte [edi + ebx]
movzx eax, dl
push 2
pop ecx
mov byte [esp + 0x1b], dl
mov al, byte [eax + 0x47de78]
test cl, al
je 0x4138e7
imul eax, dword [edi + ebx + 8], 0x48
add eax, dword [esi + 0x4c]
mov ecx, eax
mov dword [esp + 0x1c], eax
call fcn.00410051
mov ecx, dword [esp + 0x1c]
xor eax, eax
inc eax
mov word [ecx + 0x1c], ax
mov dl, byte [edi + ebx]
jmp 0x413948
mov cl, al
and cl, 8
test al, 4
je 0x41394e
imul esi, dword [edi + ebx + 4], 0x48
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x20]
add ebx, dword [esi + 0x4c]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x3c]
test cl, cl
je 0x41392e
imul ecx, dword [edi + ebx + 8], 0x48
add ecx, dword [esi + 0x4c]
mov dword [esp + 0x64], ecx
test al, 0x20
je 0x413944
imul ecx, dword [edi + ebx + 0xc], 0x48
add ecx, dword [esi + 0x4c]
mov dword [esp + 0x1c], ecx
jmp 0x413948
mov ecx, dword [esp + 0x1c]
test al, 0x10
je 0x413948
imul eax, dword [edi + ebx + 0xc], 0x48
add eax, dword [esi + 0x4c]
mov dword [esp + 0x5c], eax
jmp 0x413948
mov ecx, dword [esp + 0x1c]
mov byte [esp + 0x1b], dl
jmp 0x413978
test cl, cl
je 0x413960
imul eax, dword [edi + ebx + 8], 0x48
add eax, dword [esi + 0x4c]
mov dword [esp + 0x64], eax
jmp 0x413970
test al, 0x10
je 0x413974
imul eax, dword [edi + ebx + 0xc], 0x48
add eax, dword [esi + 0x4c]
mov dword [esp + 0x5c], eax
mov byte [esp + 0x1b], dl
mov ecx, dword [esp + 0x1c]
movzx eax, dl
mov dword [esp + 0x24], eax
dec eax
cmp eax, 0x8d
ja case.0x41398e.11
movzx eax, byte [eax + 0x417461]
jmp dword [eax*4 + 0x4172d1]
mov eax, dword [esp + 0xc]
xor edx, edx
cmp dword [eax + 0xa8], edx
jne 0x417283
mov edx, dword [edi + ebx + 8]
dec edx
mov eax, dword [esp + 0x10]
jmp 0x4139fa
mov eax, dword [esi + 0xe8]
mov ecx, dword [esp + 0x14]
inc ecx
mov dword [esi + eax*4 + 0x84], ecx
inc dword [esi + 0xe8]
jmp 0x4139a7
dec dword [esi + 0xe8]
mov eax, dword [esi + 0xe8]
mov edx, dword [esi + eax*4 + 0x84]
jmp 0x4139ab
push 4
pop eax
mov word [ecx + 0x1c], ax
mov eax, dword [edi + ebx + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
xor ecx, ecx
inc ecx
mov ebx, dword [esp + 0xc]
inc edx
mov dword [esp + 0x14], edx
test eax, eax
jne 0x4172a0
mov eax, edx
jmp 0x413856
mov edx, dword [esp + 0x1c]
push 4
pop eax
mov word [ecx + 0x1c], ax
mov eax, dword [edi + ebx + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edx], ecx
mov dword [edx + 4], eax
jmp case.0x41398e.11
push 8
pop eax
mov word [ecx + 0x1c], ax
mov eax, dword [edi + ebx + 0x10]
movsd xmm0, qword [eax]
movsd qword [ecx + 8], xmm0
jmp case.0x41398e.11
mov edx, dword [edi + ebx + 0x10]
mov ecx, edx
mov byte [edi + ebx], 0x1a
lea eax, [ecx + 1]
mov dword [esp + 0x30], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413a57
sub ecx, dword [esp + 0x30]
xor eax, eax
inc eax
mov dword [edi + ebx + 4], ecx
cmp byte [esp + 0x60], al
je 0x413b7c
mov ecx, dword [esp + 0x1c]
push 0
push eax
push 0xffffffffffffffff
call fcn.00410350
movzx edx, byte [esp + 0x6c]
add esp, 0xc
mov ecx, dword [esp + 0x1c]
call fcn.0040fdba
test eax, eax
jne 0x417293
mov eax, dword [esp + 0x1c]
movzx eax, word [eax + 0x1c]
mov ecx, eax
mov edx, eax
test eax, 0x800
je 0x413ac2
mov ecx, dword [esp + 0x1c]
call fcn.0040fdd4
mov ecx, dword [esp + 0x1c]
movzx eax, word [ecx + 0x1c]
mov ecx, eax
mov edx, eax
test ecx, 0x380
movzx eax, dx
mov ecx, dword [esp + 0x1c]
je 0x413b34
mov eax, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x24], eax
lea edx, [eax + 2]
call fcn.00404223
mov dword [esp + 0x30], eax
test eax, eax
je 0x417293
mov ecx, dword [esp + 0x1c]
push 0x60
pop edx
push dword [esp + 0x24]
or word [ecx + 0x1c], dx
push dword [ecx + 0x14]
and dword [ecx + 0x20], 0
push eax
call fcn.00451310
mov ecx, dword [esp + 0x3c]
xor eax, eax
mov edx, dword [esp + 0x30]
add esp, 0xc
mov word [ecx + edx], ax
mov edx, 0xfc7f
mov eax, dword [esp + 0x1c]
mov dword [eax + 0x14], ecx
mov ecx, eax
mov ax, word [ecx + 0x1c]
and ax, dx
movzx eax, ax
mov edx, 0xffbf
and eax, edx
or eax, 0x80
mov word [ecx + 0x1c], ax
cmp byte [edi + ebx + 1], 0xff
jne 0x413b59
push dword [edi + ebx + 0x10]
call fcn.00403f89
pop ecx
mov ecx, dword [esp + 0x1c]
mov byte [edi + ebx + 1], 0xff
mov eax, dword [ecx + 0x14]
mov dword [edi + ebx + 0x10], eax
mov eax, dword [ecx + 0x18]
mov dword [edi + ebx + 4], eax
cmp eax, 0x3b9aca00
jg 0x41713b
jmp case.0x41398e.11
cmp ecx, 0x3b9aca00
jg 0x41713b
mov ecx, dword [esp + 0x1c]
mov eax, 0xa2
mov word [ecx + 0x1c], ax
mov eax, dword [edi + ebx + 0x10]
mov dword [ecx + 0x14], eax
mov eax, dword [edi + ebx + 4]
mov dword [ecx + 0x18], eax
mov al, byte [esp + 0x60]
mov byte [ecx + 0x1f], al
jmp case.0x41398e.11
mov edx, dword [edi + ebx + 0x10]
xor eax, eax
push eax
push eax
push dword [edi + ebx + 4]
call fcn.00410350
mov eax, dword [esp + 0x28]
add esp, 0xc
mov cl, byte [esp + 0x60]
mov byte [eax + 0x1f], cl
jmp case.0x41398e.11
imul ecx, dword [edi + ebx + 4], 0x48
mov eax, dword [esi + 0x38]
add eax, 0xffffffb8
add ecx, eax
call fcn.004102b6
test eax, eax
jne 0x41713b
mov edx, ecx
mov ecx, dword [esp + 0x1c]
push 0x80
call fcn.004102d9
pop ecx
jmp case.0x41398e.11
imul ecx, dword [edi + ebx + 4], 0x48
imul eax, dword [edi + ebx + 8], 0x48
add ecx, dword [esi + 0x4c]
add eax, dword [esi + 0x4c]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], eax
cmp dl, 0x71
jne 0x413c2e
mov edx, ecx
mov ecx, eax
call fcn.0041030c
jmp case.0x41398e.11
mov edx, pe_nt_image_headers32
push edx
mov edx, ecx
mov ecx, eax
call fcn.004102d9
cmp byte [edi + ebx], 0x12
pop ecx
jne case.0x41398e.11
mov edi, dword [esp + 0x1c]
mov eax, pe_nt_image_headers32
test word [edi + 0x1c], ax
je case.0x41398e.11
mov ecx, edi
call fcn.0040fe50
xor ecx, ecx
inc ecx
test eax, eax
jne 0x417296
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
jmp 0x4139fd
mov ebx, dword [esp + 0x20]
xor edx, edx
mov edi, dword [esp + 0x64]
inc edx
movzx ecx, word [ebx + 0x1c]
mov al, byte [edi + 0x1c]
or al, cl
test dl, al
je 0x413caf
mov edi, dword [esp + 0x1c]
test byte [edi + 0x1c], 0x40
je 0x413ca6
mov ecx, edi
call fcn.00410051
xor edx, edx
inc edx
mov word [edi + 0x1c], dx
jmp case.0x41398e.11
bt ecx, 0xb
mov eax, ecx
jae 0x413cc2
mov ecx, ebx
call fcn.0040fdd4
movzx eax, word [ebx + 0x1c]
test al, 0x12
jne 0x413cda
movzx edx, byte [esp + 0x60]
mov ecx, ebx
call fcn.0040ff54
test eax, eax
jne 0x417293
movzx eax, word [edi + 0x1c]
bt eax, 0xb
mov ecx, eax
jae 0x413cf1
mov ecx, edi
call fcn.0040fdd4
movzx ecx, word [edi + 0x1c]
test cl, 0x12
jne 0x413d0a
movzx edx, byte [esp + 0x60]
mov ecx, edi
call fcn.0040ff54
test eax, eax
jne 0x417293
mov ebx, dword [ebx + 0x18]
add ebx, dword [edi + 0x18]
cmp ebx, 0x3b9aca00
jg 0x41713b
mov ecx, dword [esp + 0xc]
lea edx, [ebx + 2]
call fcn.00404223
mov edi, eax
test edi, edi
je 0x417293
mov eax, dword [esp + 0x64]
push dword [eax + 0x18]
push dword [eax + 0x14]
push edi
call fcn.00451310
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov ecx, dword [esp + 0x64]
push dword [eax + 0x18]
push dword [eax + 0x14]
mov eax, dword [ecx + 0x18]
add eax, edi
push eax
call fcn.00451310
mov ecx, dword [esp + 0x28]
xor edx, edx
add esp, 0xc
mov word [ebx + edi], dx
test byte [ecx + 0x1c], 0x40
je 0x413d7c
call fcn.00410051
mov ecx, dword [esp + 0x1c]
xor edx, edx
push 0x62
pop eax
mov word [ecx + 0x1c], ax
mov al, byte [esp + 0x60]
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x20], edx
mov byte [ecx + 0x1f], al
mov dword [ecx + 0x14], edi
jmp case.0x41398e.11
mov eax, dword [esp + 0x64]
movzx edx, word [eax + 0x1c]
mov eax, dword [esp + 0x20]
movzx ecx, word [eax + 0x1c]
mov eax, ecx
mov dword [esp + 0x38], eax
mov eax, edx
or dword [esp + 0x38], eax
test byte [esp + 0x38], 1
jne 0x413f7f
push 4
and cl, dl
pop eax
test al, cl
je 0x413e85
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x64]
mov edi, dword [eax]
mov ebx, dword [eax + 4]
mov eax, dword [esp + 0x24]
sub eax, 0x4e
je 0x413e5d
sub eax, 1
je 0x413e57
sub eax, 1
je 0x413e48
sub eax, 1
mov eax, ecx
je 0x413e19
or eax, edx
je 0x413f7f
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x413e0e
xor ecx, ecx
inc ecx
xor edx, edx
push edx
push ecx
push ebx
push edi
call fcn.0046c080
jmp 0x413e51
or eax, edx
je 0x413f7f
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x413e3d
xor eax, eax
cmp edi, eax
jne 0x413e3d
cmp ebx, 0x80000000
jne 0x413e3d
xor ecx, ecx
mov edx, eax
inc ecx
push edx
push ecx
push ebx
push edi
call fcn.0046bef0
jmp 0x413e51
push edx
push ecx
push ebx
push edi
call fcn.0046bc50
mov edi, eax
mov ebx, edx
jmp 0x413e61
sub edi, ecx
sbb ebx, edx
jmp 0x413e61
add edi, ecx
adc ebx, edx
mov ecx, dword [esp + 0x1c]
test byte [ecx + 0x1c], 0x40
je 0x413e74
call fcn.00410051
mov ecx, dword [esp + 0x1c]
mov dword [ecx], edi
mov dword [ecx + 4], ebx
push 4
pop eax
mov word [ecx + 0x1c], ax
jmp case.0x41398e.11
mov ecx, dword [esp + 0x20]
call fcn.0041012f
mov ecx, dword [esp + 0x64]
movsd qword [esp + 0x30], xmm0
call fcn.0041012f
movzx eax, byte [edi + ebx]
movsd qword [esp + 0x40], xmm0
sub eax, 0x4e
je 0x413f30
sub eax, 1
je 0x413f28
sub eax, 1
je 0x413f20
sub eax, 1
je 0x413f05
movsd xmm0, qword [esp + 0x30]
call fcn.0046c8b0
movsd xmm0, qword [esp + 0x40]
mov edi, eax
mov ebx, edx
call fcn.0046c8b0
mov ecx, eax
mov eax, edi
or eax, ebx
je 0x413f7f
mov eax, edi
and eax, ebx
cmp eax, 0xffffffff
jne 0x413ef3
xor edi, edi
inc edi
xor ebx, ebx
push ebx
push edi
push edx
push ecx
call fcn.0046c080
mov ecx, eax
call fcn.0046c960
jmp 0x413f36
movsd xmm1, qword [esp + 0x30]
ucomisd xmm1, qword [esp + 0x100]
lahf
test ah, 0x44
jnp 0x413f7f
divsd xmm0, xmm1
jmp 0x413f36
mulsd xmm0, qword [esp + 0x30]
jmp 0x413f36
subsd xmm0, qword [esp + 0x30]
jmp 0x413f36
addsd xmm0, qword [esp + 0x30]
ucomisd xmm0, xmm0
movsd qword [esp + 0x40], xmm0
lahf
test ah, 0x44
jp 0x413f7f
mov edi, dword [esp + 0x1c]
test byte [edi + 0x1c], 0x40
je 0x413f5d
mov ecx, edi
call fcn.00410051
movsd xmm0, qword [esp + 0x40]
push 8
pop eax
movsd qword [edi + 8], xmm0
mov word [edi + 0x1c], ax
test byte [esp + 0x38], al
jne case.0x41398e.11
mov ecx, edi
call fcn.004101a1
jmp case.0x41398e.11
mov ecx, dword [esp + 0x1c]
call fcn.0041020e
jmp case.0x41398e.11
movzx eax, byte [edi + ebx + 3]
imul ecx, dword [edi + ebx + 8], 0x48
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 0x24], eax
xor eax, eax
mov edx, eax
add ecx, dword [esi + 0x4c]
cmp dword [esp + 0x4c], eax
jbe 0x413fd7
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x24]
push 0x48
pop edi
mov dword [ebx + edx*4], ecx
call fcn.004135f4
inc edx
add ecx, edi
cmp edx, esi
jl 0x413fba
mov ebx, dword [esp + 0x3c]
xor eax, eax
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x28]
cmp byte [edi + ebx + 1], 0xfb
mov ecx, dword [edi + ebx + 0x10]
jne 0x413feb
mov dword [esp + 0x1a4], eax
jmp 0x413ff4
mov dword [esp + 0x1a4], ecx
mov ecx, dword [ecx]
xor edx, edx
mov dword [esp + 0x1a0], ecx
inc edx
mov dword [esp + 0x1bc], eax
mov word [esp + 0x1c4], dx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1b8], edx
mov dword [esp + 0x1f4], eax
cmp byte [ecx + 3], 0
je 0x414037
mov eax, dword [edi + ebx - 4]
mov dword [esp + 0x1f8], eax
push dword [esp + 0x24]
lea eax, [esp + 0x1a4]
push dword [esp + 0x50]
push eax
call dword [ecx + 0x10]
mov eax, dword [esp + 0x18]
add esp, 0xc
cmp byte [eax + 0x1e], 0
jne 0x4170b6
mov ecx, dword [esp + 0x1a4]
test ecx, ecx
je 0x41407f
mov edx, dword [edi + ebx + 4]
call fcn.00411e18
mov eax, dword [esp + 0x1a4]
mov dword [edi + ebx + 0x10], eax
mov byte [edi + ebx + 1], 0xf9
cmp dword [esp + 0x1f4], 0
je 0x4140b6
push 0
push ecx
mov dl, 1
lea ecx, [esp + 0x1b0]
call fcn.004106e6
pop ecx
push eax
lea eax, [esi + 0xf4]
push eax
call fcn.00404339
mov eax, dword [esp + 0x200]
add esp, 0xc
mov dword [esp + 0x10], eax
movzx edx, byte [esp + 0x60]
lea ecx, [esp + 0x1a8]
call fcn.0040fdba
imul edi, dword [edi + ebx + 0xc], 0x48
lea edx, [esp + 0x1a8]
add edi, dword [esi + 0x4c]
mov ecx, edi
mov dword [esp + 0x1c], edi
call fcn.0041030c
mov ecx, edi
call fcn.004102b6
test eax, eax
jne 0x41713b
jmp case.0x41398e.11
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x20]
mov al, byte [eax + 0x1c]
or al, byte [edx + 0x1c]
test al, 1
jne 0x413f83
mov ecx, dword [esp + 0x64]
call fcn.004100c7
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x38], eax
mov dword [esp + 0x54], edx
call fcn.004100c7
mov ecx, eax
movzx eax, byte [edi + ebx]
sub eax, 0x4a
je 0x414162
sub eax, 1
je 0x414154
mov edx, dword [esp + 0x54]
sub eax, 1
mov eax, dword [esp + 0x38]
je 0x414149
call fcn.0046c750
jmp 0x41414e
call fcn.0046c140
mov ebx, eax
mov edi, edx
jmp 0x41416e
mov ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x54]
or ebx, ecx
or edi, edx
jmp 0x41416e
mov ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x54]
and ebx, ecx
and edi, edx
mov ecx, dword [esp + 0x1c]
test byte [ecx + 0x1c], 0x40
je 0x414181
call fcn.00410051
mov ecx, dword [esp + 0x1c]
mov dword [ecx], ebx
mov dword [ecx + 4], edi
jmp 0x413e79
mov ecx, dword [esp + 0x20]
call fcn.004101d0
mov eax, dword [edi + ebx + 8]
mov edi, dword [esp + 0x20]
cdq
add dword [edi], eax
adc dword [edi + 4], edx
jmp case.0x41398e.11
mov ecx, dword [esp + 0x20]
call fcn.00413657
mov edx, dword [esp + 0x20]
movzx eax, word [edx + 0x1c]
mov ecx, eax
test al, 8
je 0x4141cd
mov ecx, edx
call fcn.004101a1
mov edx, dword [esp + 0x20]
movzx ecx, word [edx + 0x1c]
movzx eax, cx
mov dword [esp + 0x30], eax
test al, 0xc
je 0x4139a7
push 4
pop ecx
test cl, al
je 0x414216
xor eax, eax
cmp dword [edi + ebx + 0xc], eax
je 0x4141f2
xor ecx, ecx
mov edx, eax
inc ecx
jmp 0x414203
xorps xmm0, xmm0
movlpd qword [esp + 0x40], xmm0
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x20]
add ecx, dword [eax]
mov dword [esp + 0x50], ecx
adc edx, dword [eax + 4]
mov dword [esp + 0x3c], edx
jmp 0x414292
movsd xmm0, qword [edx + 8]
call fcn.0046c8b0
mov ecx, edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x3c], ecx
mov ecx, eax
call fcn.0046c960
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x3c]
movsd xmm1, qword [eax + 8]
comisd xmm1, xmm0
jbe 0x41425a
add ecx, 1
push 0
pop eax
adc edx, eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x3c], edx
jmp 0x41425c
xor eax, eax
cmp dword [edi + ebx + 0xc], eax
je 0x41428e
call fcn.0046c960
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x50]
mov ebx, dword [esp + 0x3c]
movsd xmm1, qword [eax + 8]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
mov eax, dword [esp + 0x20]
jp 0x41429a
add edi, 1
adc ebx, 0
jmp 0x41429a
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x50]
test byte [esp + 0x30], 0x40
je 0x4142a8
mov ecx, eax
call fcn.00410051
mov eax, dword [esp + 0x20]
push 4
pop ecx
mov dword [eax], edi
mov dword [eax + 4], ebx
mov word [eax + 0x1c], cx
jmp case.0x41398e.11
mov ecx, dword [esp + 0x20]
call fcn.00413657
mov edx, dword [esp + 0x20]
movzx eax, word [edx + 0x1c]
mov ecx, eax
test al, 8
je 0x4142e3
mov ecx, edx
call fcn.004101a1
mov eax, dword [esp + 0x20]
movzx ecx, word [eax + 0x1c]
movzx eax, cx
push 4
pop ecx
test cl, al
jne 0x414301
mov eax, dword [edi + ebx + 8]
test eax, eax
je 0x4170c7
lea edx, [eax - 1]
jmp 0x4139ac
mov ebx, dword [esp + 0x20]
test al, 0x40
je 0x414310
mov ecx, ebx
call fcn.00410051
push 4
pop eax
mov word [ebx + 0x1c], ax
jmp case.0x41398e.11
mov ebx, dword [esp + 0x20]
push 4
pop eax
test byte [ebx + 0x1c], al
je case.0x41398e.11
mov ecx, ebx
call fcn.004101ef
jmp case.0x41398e.11
mov ebx, dword [esp + 0x20]
movzx ecx, word [ebx + 0x1c]
test cl, 1
jne case.0x41398e.11
push dword [esp + 0x60]
mov eax, ecx
mov dl, 0x61
shr eax, 3
and eax, 2
or eax, ecx
mov ecx, ebx
mov word [ebx + 0x1c], ax
call fcn.004136ca
movzx eax, word [ebx + 0x1c]
bt eax, 0xb
pop ecx
jae 0x414380
mov ecx, ebx
call fcn.0040fdd4
movzx ecx, word [ebx + 0x1c]
mov dword [esp + 0x10], eax
jmp 0x414387
and dword [esp + 0x10], 0
mov ecx, eax
and ecx, 0xffe3
mov word [ebx + 0x1c], cx
jmp case.0x41398e.11
mov ebx, dword [esp + 0x20]
movzx ecx, word [ebx + 0x1c]
test cl, 1
jne case.0x41398e.11
mov eax, ecx
test cl, 0x10
jne 0x4143c9
push dword [esp + 0x60]
mov dl, 0x61
mov ecx, ebx
call fcn.004136ca
mov ax, word [ebx + 0x1c]
pop ecx
push 0x10
pop ecx
or ax, cx
movzx eax, ax
and eax, 0xfff1
jmp 0x414313
mov ebx, dword [esp + 0x20]
test byte [ebx + 0x1c], 0xd
jne case.0x41398e.11
mov ecx, ebx
call fcn.0041012f
movsd qword [esp + 0x40], xmm0
call fcn.004100a3
mov ecx, eax
call fcn.0046c960
movsd xmm1, qword [esp + 0x40]
mov ecx, ebx
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x414416
call fcn.004101d0
jmp case.0x41398e.11
push 8
pop eax
movsd qword [ebx + 8], xmm1
mov word [ebx + 0x1c], ax
call fcn.00410051
jmp case.0x41398e.11
mov ebx, dword [esp + 0x20]
test byte [ebx + 0x1c], 1
jne case.0x41398e.11
mov ecx, ebx
jmp 0x41440c
mov ebx, dword [esp + 0x20]
test byte [ebx + 0x1c], 1
jne case.0x41398e.11
jmp 0x41432c
mov eax, dword [esp + 0x5c]
xor edx, edx
mov ecx, dword [esp + 0x20]
inc edx
mov al, byte [eax + 0x1c]
or al, byte [ecx + 0x1c]
test dl, al
je 0x4144db
mov al, byte [edi + ebx + 3]
test al, 0x10
je 0x41456d
push 4
pop eax
mov word [esp + 0x264], ax
movzx eax, word [ecx + 0x1c]
xor ecx, ecx
cdq
not eax
mov dword [esp + 0x24c], ecx
and eax, 1
mov dword [esp + 0x248], eax
lea eax, [esp + 0x248]
mov dword [esp + 0x20], eax
push 4
pop eax
mov word [esp + 0x2ac], ax
mov eax, dword [esp + 0x5c]
movzx eax, word [eax + 0x1c]
cdq
not eax
mov dword [esp + 0x294], ecx
and eax, 1
lea ecx, [esp + 0x248]
mov dword [esp + 0x290], eax
lea eax, [esp + 0x290]
mov dword [esp + 0x5c], eax
mov al, byte [edi + ebx + 3]
and al, 0x67
mov byte [esp + 0x1b], al
je 0x414505
push dword [esp + 0x60]
mov dl, al
call fcn.004136ca
mov dl, byte [esp + 0x1f]
pop ecx
push dword [esp + 0x60]
mov ecx, dword [esp + 0x60]
call fcn.004136ca
pop ecx
mov eax, dword [esp + 0x20]
mov ecx, 0x800
test word [eax + 0x1c], cx
je 0x414520
mov ecx, eax
call fcn.0040fdd4
mov ecx, 0x800
mov eax, dword [esp + 0x5c]
test word [eax + 0x1c], cx
je 0x414535
mov ecx, eax
call fcn.0040fdd4
mov eax, dword [esp + 0x5c]
push dword [edi + ebx + 0x10]
mov edx, dword [esp + 0x24]
mov ecx, eax
call fcn.00410466
pop ecx
movzx ecx, byte [edi + ebx]
mov edx, eax
sub ecx, 0x43
je 0x4145bf
sub ecx, 1
je 0x4145b6
sub ecx, 1
je 0x4145ad
sub ecx, 1
je 0x4145a4
sub ecx, 1
je 0x41459b
xor eax, eax
test edx, edx
setns al
jmp 0x4145c6
test al, al
jns 0x414582
imul edi, dword [edi + ebx + 8], 0x48
add edi, dword [esi + 0x4c]
mov dword [esp + 0x1c], edi
jmp 0x413c96
push 8
pop ecx
test cl, al
mov eax, dword [esp + 0x10]
je 0x4139f6
mov edx, dword [edi + ebx + 8]
dec edx
jmp 0x4139fa
xor eax, eax
test edx, edx
sets al
jmp 0x4145c6
xor eax, eax
test edx, edx
setle al
jmp 0x4145c6
xor eax, eax
test edx, edx
setg al
jmp 0x4145c6
xor eax, eax
test edx, edx
sete al
jmp 0x4145c6
xor eax, eax
test edx, edx
setne al
cmp byte [edi + ebx + 3], 0
mov dword [esp + 0x2c], eax
jge 0x414600
imul edi, dword [edi + ebx + 8], 0x48
add edi, dword [esi + 0x4c]
mov dword [esp + 0x1c], edi
test byte [edi + 0x1c], 0x40
je 0x4145ea
mov ecx, edi
call fcn.00410051
and dword [edi + 4], 0
push 4
pop eax
mov word [edi + 0x1c], ax
mov eax, dword [esp + 0x2c]
mov dword [edi], eax
jmp case.0x41398e.11
xor ecx, ecx
test eax, eax
mov eax, dword [esp + 0x10]
je 0x416aac
mov edx, dword [edi + ebx + 8]
dec edx
jmp 0x4139fc
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 1
je 0x41462c
mov dword [esp + 0x4c], 6
jmp 0x414646
mov ecx, eax
call fcn.004100c7
or eax, edx
je 0x414641
mov dword [esp + 0x4c], 3
jmp 0x414646
and dword [esp + 0x4c], 0
mov eax, dword [esp + 0x64]
test byte [eax + 0x1c], 1
je 0x41465c
mov ecx, 0x47d9de
mov eax, 0x47c26e
jmp 0x41467d
mov ecx, eax
call fcn.004100c7
or eax, edx
je 0x414673
mov ecx, 0x47d9dd
mov eax, 0x47c26d
jmp 0x41467d
mov ecx, 0x47d9dc
mov eax, 0x47c26c
cmp byte [edi + ebx], 0x3d
mov edi, dword [esp + 0x1c]
cmovne eax, ecx
mov ecx, dword [esp + 0x4c]
test byte [edi + 0x1c], 0x40
mov bl, byte [eax + ecx]
je 0x41469c
mov ecx, edi
call fcn.00410051
push 2
pop eax
cmp bl, al
jne 0x4146a8
xor eax, eax
inc eax
jmp 0x4146b4
movzx eax, bl
cdq
push 4
mov dword [edi], eax
mov dword [edi + 4], edx
pop eax
mov word [edi + 0x1c], ax
jmp case.0x41398e.11
mov ebx, dword [esp + 0x20]
test byte [ebx + 0x1c], 1
jne case.0x41398e.11
mov ecx, ebx
call fcn.004101d0
mov eax, dword [ebx]
or eax, dword [ebx + 4]
jne 0x4146de
inc eax
xor ecx, ecx
jmp 0x4146ef
xorps xmm0, xmm0
movlpd qword [esp + 0x40], xmm0
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp case.0x41398e.11
mov ebx, dword [esp + 0x20]
test byte [ebx + 0x1c], 1
jne case.0x41398e.11
mov ecx, ebx
call fcn.004101d0
not dword [ebx]
not dword [ebx + 4]
jmp case.0x41398e.11
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 1
je 0x41472b
mov eax, dword [edi + ebx + 0xc]
jmp 0x414600
mov ecx, eax
call fcn.0041012f
ucomisd xmm0, qword [esp + 0x100]
lahf
xor edx, edx
test ah, 0x44
jnp 0x414748
inc edx
mov eax, edx
jmp 0x41474b
xor eax, eax
inc edx
cmp byte [edi + ebx], 0x40
jne 0x414600
xor eax, edx
jmp 0x414600
mov eax, dword [edi + ebx + 0xc]
xor edx, edx
mov ecx, dword [esp + 0x20]
inc edx
test byte [ecx + 0x1c], dl
jne 0x4139a7
add ecx, 0x48
dec eax
mov dword [esp + 0x20], ecx
test eax, eax
jg 0x414767
jmp case.0x41398e.11
mov eax, dword [esp + 0x20]
xor ecx, ecx
test byte [eax + 0x1c], 1
mov eax, dword [esp + 0x10]
jne 0x416aac
jmp 0x41460e
mov eax, dword [esi + 0x30]
mov ecx, dword [edi + ebx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edi + ebx + 8]
mov dword [ecx + 0x50], eax
jmp case.0x41398e.11
mov eax, dword [edi + ebx + 8]
imul ecx, dword [edi + ebx + 0xc], 0x48
mov esi, dword [edi + ebx + 4]
mov dword [esp + 0x30], eax
xor eax, eax
mov word [esp + 0x21c], ax
mov eax, dword [esp + 0x28]
add ecx, dword [eax + 0x4c]
mov dword [esp + 0x24], ecx
call fcn.0041020e
mov ecx, dword [esp + 0x28]
xor edx, edx
mov eax, dword [ecx + 0x30]
mov ecx, dword [eax + esi*4]
mov dword [esp + 0x70], ecx
cmp dword [ecx], edx
je 0x41486c
call fcn.00411f20
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4170ed
mov ecx, dword [esp + 0x70]
xor edx, edx
mov dword [esp + 0x74], edx
mov esi, dword [ecx]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x28]
cmp byte [ecx + 0x1c], dl
je 0x41481f
mov dword [esp + 0x7c], edx
jmp 0x41488d
mov eax, dword [ecx + 0x68]
cmp eax, dword [esi + 0x54]
jne 0x414833
mov edx, dword [ecx + 0x6c]
mov eax, dword [ecx + 0x78]
mov dword [esp + 0x7c], edx
jmp 0x414885
cmp byte [ecx + 0x21], dl
mov ecx, dword [esp + 0x2c]
je 0x414859
lea edx, [esp + 0x138]
call fcn.0040c0a1
mov edx, dword [esp + 0x138]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x7c], edx
jmp 0x414889
lea edx, [esp + 0x7c]
call fcn.0040c0e4
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x7c]
jmp 0x414889
mov eax, dword [ecx + 0x34]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x7c], eax
mov eax, dword [ecx + 0x38]
mov dword [ecx + 0x68], edx
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x10]
mov ebx, dword [ecx + 0x50]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x3c]
test edx, edx
je 0x4139f6
cmp edx, 0x3b9aca00
ja 0x41713b
mov eax, dword [ecx + 0x70]
mov dword [esp + 0x54], eax
mov eax, dword [ecx + 0x68]
cmp eax, dword [esi + 0x54]
jne 0x4148c3
mov eax, dword [ecx + 0x74]
jmp 0x414aba
mov eax, dword [esp + 0x54]
mov dword [esp + 0x54], eax
test eax, eax
jne 0x4148f6
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0xc]
shl edx, 3
call fcn.00404223
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x54], eax
mov dword [ecx + 0x70], eax
test eax, eax
je 0x417293
mov edx, dword [esp + 0x7c]
mov edi, dword [esp + 0x4c]
mov dword [ecx + 0x6c], edx
lea eax, [eax + edi*4]
mov edi, dword [esp + 0x50]
mov dword [esp + 0x58], eax
mov dword [ecx + 0x74], eax
mov eax, dword [esi + 0x54]
mov dword [ecx + 0x68], eax
mov eax, dword [esp + 0x74]
test eax, eax
je 0x41491f
mov dword [esp + 0x10], eax
jmp 0x414974
cmp byte [ecx + 0x21], 0
mov eax, dword [esp + 0x2c]
mov al, byte [eax + 0x49]
je 0x414950
cmp al, 1
jne 0x414958
push 0
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0xa4]
call fcn.0040c51d
mov edx, dword [esp + 0x80]
pop ecx
mov ecx, dword [esp + 0x70]
jmp 0x41495a
cmp al, 1
jne 0x414958
push 1
jmp 0x414932
xor eax, eax
mov dword [esp + 0x10], eax
cmp dword [esp + 0xa0], edx
jb 0x414970
mov dword [esp + 0x74], eax
mov dword [ecx + 0x78], eax
jmp 0x414974
and dword [ecx + 0x78], 0
movzx edx, byte [eax]
mov dword [esp + 0x38], edx
mov dword [esp + 0x78], edx
cmp edx, 0x7f
ja 0x41498e
mov dword [esp + 0x68], 1
jmp 0x4149ad
lea edx, [esp + 0x78]
mov ecx, eax
call fcn.00406395
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x38], edx
cmp dword [esp + 0x74], 0
jne 0x4149ec
cmp dword [esp + 0xa0], edx
jae 0x4149ec
lea eax, [esp + 0x200]
push eax
movzx eax, byte [ecx + 0x21]
mov ecx, dword [esp + 0x30]
push eax
push edx
xor edx, edx
call fcn.00410605
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4139f6
mov eax, dword [esp + 0x214]
mov edx, dword [esp + 0x38]
lea ecx, [edx + eax]
add eax, dword [esp + 0x68]
mov dword [esp + 0x78], ecx
xor ecx, ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x68], ecx
cmp dword [esp + 0x4c], ecx
jbe 0x414a79
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x54]
sub eax, ebx
mov edi, dword [esp + 0x10]
mov dword [esp + 0x40], eax
cmp edi, dword [esp + 0x78]
jae 0x414a5b
mov dword [ebx + eax], edx
movzx ecx, byte [edi]
mov dword [ebx], ecx
cmp ecx, 0x7f
ja 0x414a35
xor eax, eax
inc eax
jmp 0x414a44
mov edx, ebx
mov ecx, edi
call fcn.00406395
mov ecx, dword [ebx]
mov edx, dword [esp + 0x38]
add edi, eax
call fcn.00412053
mov ecx, dword [esp + 0x68]
add edx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x38], edx
jmp 0x414a5f
and dword [ebx + eax], 0
inc ecx
add ebx, 4
mov dword [esp + 0x68], ecx
cmp ecx, dword [esp + 0x4c]
jb 0x414a1d
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x50]
test byte [esp + 0x21c], 0x40
je 0x414a93
lea ecx, [esp + 0x200]
call fcn.00410051
mov edx, dword [esp + 0x38]
xor eax, eax
inc eax
mov word [esp + 0x21c], ax
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x10], eax
ja 0x414b7c
cmp edx, dword [esp + 0x7c]
ja 0x414b7c
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x30]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x414b2a
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x54]
test eax, eax
je 0x414ad6
lea ecx, [edx + eax]
jmp 0x414b0f
mov ecx, dword [edi + ecx*4]
call fcn.00412053
lea ecx, [esp + 0x200]
push ecx
mov ecx, dword [esp + 0x74]
movzx ecx, byte [ecx + 0x21]
push ecx
mov ecx, dword [esp + 0x34]
push eax
call fcn.00410605
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4139f6
mov ecx, dword [esp + 0x214]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x24]
push ebx
mov edx, dword [edi + edx*4]
call fcn.00412105
mov al, byte [esp + 0x64]
pop ecx
mov byte [ebx + 0x1f], al
jmp 0x414b4c
cmp byte [edi + ebx + 1], 0xf8
jne 0x414b48
mov edx, dword [edi + ebx + 0x10]
mov ebx, dword [esp + 0x24]
mov ecx, ebx
push 0x80
call fcn.004102d9
pop ecx
jmp 0x414b4c
mov ebx, dword [esp + 0x24]
test byte [esp + 0x21c], 0x40
je 0x414b6c
mov ax, word [ebx + 0x1c]
mov ecx, 0xfeff
and ax, cx
push 0x60
pop ecx
or ax, cx
mov word [ebx + 0x1c], ax
mov ecx, ebx
call fcn.0040fe50
mov dword [esp + 0x10], eax
jmp 0x4139f6
push 0xb
pop eax
jmp 0x414b73
imul ecx, dword [edi + ebx + 4], 0x48
xor eax, eax
mov edx, dword [edi + ebx + 0x10]
xorps xmm0, xmm0
mov dword [esp + 0x54], eax
mov dword [esp + 0x74], eax
imul eax, dword [edi + ebx + 8], 0x48
add ecx, dword [esi + 0x4c]
movzx esi, byte [esi + 0x100]
movlpd qword [esp + 0x40], xmm0
mov dword [esp + 0x1c], esi
mov esi, ecx
add eax, 0xffffffb8
mov dword [esp + 0x30], edx
add eax, ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x70], eax
cmp ecx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x4c], eax
ja 0x414c95
xor ebx, ebx
mov edi, ecx
test edx, edx
je 0x414c00
push dword [esp + 0x60]
mov eax, esi
sub eax, edi
push 0x48
pop ecx
cdq
idiv ecx
mov ecx, dword [esp + 0x34]
mov dl, byte [eax + ecx]
mov ecx, esi
call fcn.004136ca
pop ecx
movzx eax, word [esi + 0x1c]
bt eax, 0xb
mov dword [esp + 0x24], eax
jae 0x414c26
mov dword [esp + 0x24], eax
cmp dword [esi + 0x18], ebx
jle 0x414c26
mov ecx, esi
call fcn.0040fdd4
movzx eax, word [esi + 0x1c]
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x1c]
mov ecx, esi
call fcn.00411f8e
mov ecx, eax
call fcn.00412053
mov dword [esp + 0x40], eax
cdq
add dword [esp + 0x4c], eax
push ebx
adc dword [esp + 0x30], edx
push ecx
call fcn.004063eb
pop ecx
pop ecx
mov ecx, dword [esp + 0x54]
add ecx, eax
mov eax, 0x800
test dword [esp + 0x24], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x54], ecx
je 0x414c6b
add eax, dword [esi]
jmp 0x414c74
xor edx, edx
cmp dword [esp + 0x40], edx
cmovne eax, edx
mov edx, dword [esp + 0x30]
push 0x48
mov dword [esp + 0x78], eax
pop eax
add esi, eax
cmp esi, dword [esp + 0x70]
jbe 0x414bdf
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x50]
jmp 0x414c99
mov ecx, dword [esp + 0x54]
mov eax, ecx
cdq
push edx
push eax
call fcn.004063eb
mov ecx, dword [esp + 0x5c]
mov esi, eax
mov eax, dword [esp + 0x7c]
add ecx, esi
cdq
mov dword [esp + 0x60], eax
mov eax, ecx
mov dword [esp + 0x70], edx
cdq
push edx
push eax
mov dword [esp + 0x64], ecx
call fcn.004063eb
mov edx, dword [esp + 0x64]
add esp, 0x10
cmp esi, eax
lea ecx, [edx + 1]
cmovge ecx, edx
mov eax, ecx
cdq
mov esi, eax
mov eax, edx
mov ecx, esi
mov dword [esp + 0x40], eax
sub ecx, dword [esp + 0x58]
sbb edx, dword [esp + 0x68]
add ecx, dword [esp + 0x4c]
mov dword [esp + 0x30], ecx
adc edx, dword [esp + 0x2c]
xor eax, eax
mov dword [esp + 0x78], edx
cmp edx, eax
ja 0x417137
jb 0x414d16
cmp ecx, 0x3b9aca00
ja 0x417137
cmp edx, eax
ja 0x414d28
cmp ecx, 0x20
ja 0x414d28
lea eax, [esp + 0x2dc]
mov dword [esp + 0x4c], eax
jmp 0x414d3f
mov edx, ecx
mov ecx, dword [esp + 0xc]
call fcn.00404223
mov dword [esp + 0x4c], eax
test eax, eax
je 0x41728f
push dword [esp + 0x40]
mov ecx, eax
push esi
call fcn.00406244
mov esi, eax
mov eax, dword [esp + 0x40]
pop ecx
pop ecx
mov dword [esp + 0x40], eax
cmp eax, dword [esp + 0x70]
ja 0x414dc4
mov ebx, eax
mov edx, dword [esp + 0x1c]
mov ecx, ebx
call fcn.00411f8e
mov ecx, dword [esp + 0x4c]
push 0
push eax
lea ecx, [esi + ecx]
call fcn.00406244
pop ecx
pop ecx
add esi, eax
push 0x48
pop eax
add ebx, eax
cmp ebx, dword [esp + 0x70]
jbe 0x414d5f
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x38]
push dword [esp + 0x1c]
mov edx, edi
lea ecx, [esi + ebx]
push eax
sub edx, esi
call fcn.00412066
pop ecx
pop ecx
add esi, eax
mov eax, dword [esp + 0x38]
push 0x48
pop ecx
add eax, ecx
mov dword [esp + 0x38], eax
cmp eax, dword [esp + 0x70]
jbe 0x414d94
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x50]
imul edi, dword [edi + ebx + 0xc], 0x48
mov esi, dword [esp + 0x28]
add edi, dword [esi + 0x4c]
mov dword [esp + 0x1c], edi
test byte [edi + 0x1c], 0x40
je 0x414de1
mov ecx, edi
call fcn.00410051
mov ecx, dword [esp + 0x30]
xor edx, edx
mov dword [edi + 0x18], ecx
cmp dword [esp + 0x78], edx
ja 0x414e16
jb 0x414df7
cmp ecx, 0x20
ja 0x414e16
push ecx
lea ecx, [esp + 0x2e0]
lea eax, [edi + 0x24]
push ecx
push eax
mov dword [edi + 0x14], eax
call fcn.00451310
add esp, 0xc
mov ecx, 0x210
jmp 0x414e23
mov eax, dword [esp + 0x4c]
push 0x50
mov dword [edi + 0x14], eax
mov dword [edi + 0x20], edx
pop ecx
cmp dword [esp + 0x74], 0
movzx eax, cx
mov word [edi + 0x1c], cx
je 0x414e49
mov ecx, dword [esp + 0x58]
mov dword [edi], ecx
mov ecx, dword [esp + 0x68]
mov dword [edi + 4], ecx
mov ecx, 0x800
or eax, ecx
mov word [edi + 0x1c], ax
mov byte [edi + 0x1f], 1
jmp case.0x41398e.11
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x1c], 0
je 0x414e66
cmp dword [eax + 0x60], 1
jle case.0x41398e.11
imul ecx, dword [edi + ebx + 4], 0x18
mov eax, dword [eax + 8]
mov ebx, dword [ecx + eax + 4]
mov edi, dword [ebx + 4]
test edi, edi
je 0x414e83
cmp byte [edi + 0x10], 0
jne case.0x41398e.11
mov ecx, ebx
call fcn.00409f8a
mov eax, dword [ebx]
mov dword [edi + 4], eax
push 2
pop eax
cmp byte [ebx + 8], al
jne 0x414ebb
cmp byte [edi + 0x10], 0
jne 0x414ebb
cmp byte [edi + 0x11], 0
je 0x414eaa
and dword [esp + 0x10], 0
jmp 0x414eb5
mov ecx, dword [edi]
call fcn.00409ccc
mov dword [esp + 0x10], eax
mov byte [edi + 0x10], 1
jmp 0x414ecc
xor eax, eax
inc eax
cmp byte [edi + 0x11], 0
push 8
pop ecx
cmovne eax, ecx
mov dword [esp + 0x10], eax
mov ecx, ebx
call fcn.00409fed
mov dword [esi + 0x14c], 1
jmp case.0x41398e.11
imul ecx, dword [edi + ebx + 4], 0x18
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
mov ecx, dword [ecx + eax + 4]
test ecx, ecx
je case.0x41398e.11
mov edx, dword [edi + ebx + 8]
call fcn.0040b5b3
push 5
pop edi
mov dword [esp + 0x10], eax
cmp eax, edi
je 0x4170cc
test eax, eax
je 0x4139f6
push 8
pop ecx
cmp eax, ecx
jne 0x4170f1
jmp 0x4172a0
mov ecx, dword [edi + ebx + 4]
lea eax, [esp + 0xdc]
mov edx, dword [edi + ebx + 0xc]
neg edx
test ecx, ecx
push eax
cmovns edx, dword [edi + ebx + 0xc]
mov eax, ecx
mov ebx, dword [esp + 0x10]
inc edx
test ecx, ecx
not eax
cmovns eax, ecx
mov ecx, dword [ebx + 8]
imul eax, eax, 0x18
mov ecx, dword [eax + ecx + 4]
call fcn.0040f2a6
pop ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xdc]
cdq
push 4
mov dword [ecx], eax
pop eax
mov dword [ecx + 4], edx
mov word [ecx + 0x1c], ax
mov eax, dword [esp + 0x10]
xor ecx, ecx
inc ecx
mov edx, dword [esp + 0x14]
jmp 0x413a01
imul eax, dword [edi + ebx + 4], 0x18
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 8]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x24], eax
call fcn.004101d0
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x24]
mov edx, dword [edi + ebx + 8]
inc edx
push dword [eax]
mov ecx, dword [ecx + 4]
call fcn.0040f329
pop ecx
mov ecx, dword [edi + ebx + 8]
xor edx, edx
mov dword [esp + 0x10], eax
test ecx, ecx
jne 0x414fec
mov eax, dword [esp + 0x24]
push 0x10
mov ecx, dword [eax + 0x14]
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
mov dword [ecx], eax
mov ecx, dword [esp + 0x10]
pop eax
or dword [ecx + 0xc], eax
inc edx
mov eax, dword [esp + 0x10]
jmp 0x415009
inc edx
cmp ecx, edx
jne 0x415005
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x14]
mov eax, dword [esp + 0x5c]
mov al, byte [eax]
mov byte [ecx + 0x58], al
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
cmp dword [edi + ebx + 4], edx
jne 0x4139f6
call fcn.004126ef
jmp case.0x41398e.11
imul ecx, dword [edi + ebx + 4], 0x18
xor edx, edx
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
mov ecx, dword [ecx + eax + 4]
test ecx, ecx
je 0x415057
lea eax, [esp + 0xac]
inc edx
push eax
call fcn.0040f2a6
mov dword [esp + 0x14], eax
pop ecx
test eax, eax
jne 0x4139f6
mov ecx, dword [esp + 0xac]
jmp 0x415066
mov eax, edx
mov ecx, edx
mov dword [esp + 0x10], eax
mov dword [esp + 0xac], ecx
cmp ecx, dword [edi + ebx + 8]
je 0x4139f6
push dword [esi + 0xf4]
call fcn.00403f89
pop ecx
mov ecx, dword [esp + 0xc]
mov edx, str.database_schema_has_changed
call fcn.004042fa
mov dword [esi + 0xf4], eax
mov edx, dword [edi + ebx + 4]
mov ebx, dword [esp + 0xc]
imul ecx, edx, 0x18
mov eax, dword [ebx + 8]
mov eax, dword [ecx + eax + 0x14]
mov ecx, dword [esp + 0xac]
cmp dword [eax], ecx
je 0x4150b4
mov ecx, ebx
call fcn.0041c5cf
mov ecx, ebx
call fcn.004126ef
push 0x11
pop eax
mov dword [esp + 0x10], eax
jmp 0x414f81
mov eax, dword [edi + ebx + 4]
mov esi, dword [esp + 0xc]
mov ecx, dword [edi + ebx + 8]
mov dword [esp + 0x68], eax
mov eax, dword [edi + ebx + 0xc]
mov dword [esp + 0x40], eax
imul eax, eax, 0x18
mov dword [esp + 0x58], ecx
add eax, dword [esi + 8]
mov esi, dword [eax + 4]
mov dword [esp + 0x78], esi
mov esi, dword [esp + 0x28]
cmp dl, 8
jne 0x415117
mov eax, dword [eax + 0x14]
mov dword [esp + 0x30], 1
mov al, byte [eax + 0x58]
cmp al, byte [esi + 0x100]
jae 0x41511c
mov byte [esi + 0x100], al
jmp 0x41511c
and dword [esp + 0x30], 0
cmp byte [edi + ebx + 3], 0
je 0x41513e
imul eax, ecx, 0x48
add eax, dword [esi + 0x4c]
mov ecx, eax
mov dword [esp + 0x64], eax
call fcn.004101d0
mov ecx, dword [esp + 0x64]
mov eax, dword [ecx]
mov dword [esp + 0x58], eax
push dword [esp + 0x40]
mov edx, dword [esp + 0x6c]
mov ecx, esi
call fcn.0041361f
mov dword [esp + 0x3c], eax
pop ecx
test eax, eax
je 0x417293
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x78]
push eax
mov byte [eax + 0x1c], 1
push dword [edi + ebx + 0x10]
push fcn.004122fd
push dword [esp + 0x3c]
call fcn.0040bfbe
add esp, 0x10
mov dword [esp + 0x10], eax
cmp byte [edi + ebx + 1], 0xfa
jne 0x4151ae
mov ecx, dword [edi + ebx + 0x10]
mov edx, dword [esp + 0x38]
lea eax, [ecx + 5]
mov dword [edx + 0x4c], ecx
mov dword [edx + 0x48], eax
xor edx, edx
mov eax, dword [esi]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x14]
mov al, byte [eax + 0x59]
mov byte [ecx + 4], al
mov ecx, dword [esp + 0x38]
jmp 0x4151bd
mov ecx, dword [esp + 0x38]
xor edx, edx
lea eax, [ecx + 0x22]
mov dword [ecx + 0x4c], edx
mov dword [ecx + 0x48], eax
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4151fe
push 5
pop ecx
cmp eax, ecx
je 0x4170d8
push 0x10
pop ecx
cmp eax, ecx
jne 0x4170f1
cmp byte [edi + ebx + 1], 0xfa
mov edi, dword [esp + 0x38]
setne al
mov byte [edi + 0x20], al
sete al
mov byte [edi + 0x21], al
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x14]
inc eax
jmp 0x415742
mov ecx, dword [ecx]
call fcn.0040f39a
mov edx, eax
test dl, 0xf0
jne 0x415248
and eax, 7
cmp eax, 5
je 0x41521b
push 2
pop ecx
cmp eax, ecx
jne 0x415248
mov ecx, dword [esp + 0x38]
mov al, dl
shr edx, 1
and al, 1
and dl, 1
mov byte [ecx + 0x20], al
mov byte [ecx + 0x21], dl
test al, al
je 0x415239
cmp byte [edi + ebx + 1], 0xfa
je 0x415248
test dl, dl
je case.0x41398e.11
cmp byte [edi + ebx + 1], 0xfa
je 0x4151f4
push 0xb
jmp 0x4170c9
mov edx, dword [edi + ebx + 4]
mov ecx, esi
push 0xffffffffffffffff
call fcn.0041361f
pop ecx
xor ecx, ecx
mov dword [esp + 0x2c], eax
inc ecx
test eax, eax
je 0x417296
mov byte [eax + 0x1c], cl
xor edx, edx
add eax, 0x30
push eax
push 0x41e
push 0x1f4
push ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x34], eax
call fcn.00429690
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41535b
mov ecx, dword [esp + 0x24]
xor edx, edx
inc edx
mov ecx, dword [ecx]
call fcn.0040b5b3
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41535b
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
xor eax, eax
cmp dword [edi + ebx + 0x10], eax
je 0x415333
push 2
pop eax
push eax
lea edx, [esp + 0xe4]
call fcn.0040ef6d
mov dword [esp + 0x14], eax
pop ecx
test eax, eax
jne 0x415329
push dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
push dword [edi + ebx + 0x10]
mov edx, dword [esp + 0xe8]
push fcn.004122fd
mov ecx, dword [eax]
push 1
call fcn.0040bfbe
mov edx, dword [esp + 0x3c]
add esp, 0x10
mov ecx, dword [edi + ebx + 0x10]
mov dword [esp + 0x10], eax
mov dword [edx + 0x4c], ecx
mov eax, dword [esi]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x14]
mov al, byte [eax + 0x59]
mov byte [ecx + 4], al
mov eax, dword [edx + 0x4c]
add eax, 5
mov dword [edx + 0x48], eax
jmp 0x41532d
mov edx, dword [esp + 0x2c]
mov byte [edx + 0x20], 0
jmp 0x41535f
push dword [esp + 0x2c]
push eax
push eax
xor eax, eax
inc eax
push eax
mov edx, eax
call fcn.0040bfbe
mov edx, dword [esp + 0x3c]
add esp, 0x10
mov dword [esp + 0x10], eax
lea eax, [edx + 0x22]
mov byte [edx + 0x20], 1
mov dword [edx + 0x48], eax
jmp 0x41535f
mov edx, dword [esp + 0x2c]
mov eax, dword [edi + ebx + 8]
cmp byte [edx + 0x20], 0
mov dword [edx + 0x50], eax
sete al
mov byte [edx + 0x21], al
jmp case.0x41398e.11
mov edx, dword [edi + ebx + 4]
mov ecx, esi
push 0xffffffffffffffff
call fcn.0041361f
pop ecx
xor ecx, ecx
inc ecx
test eax, eax
je 0x417296
mov byte [eax + 0x1c], cl
mov byte [eax + 0x1e], cl
lea ecx, [eax + 0x22]
mov dword [eax + 0x48], ecx
mov word [eax + 0x20], 1
jmp case.0x41398e.11
mov esi, dword [edi + ebx + 4]
mov ebx, dword [esp + 0x28]
mov ecx, ebx
mov edx, dword [ebx + 0x30]
mov edx, dword [edx + esi*4]
call fcn.00411460
mov eax, dword [ebx + 0x30]
and dword [eax + esi*4], 0
mov esi, ebx
mov eax, dword [esp + 0x10]
jmp 0x4139f6
mov ecx, dword [edi + ebx + 4]
xor edx, edx
mov eax, dword [esi + 0x30]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x2c], ecx
cmp dword [ecx], edx
je case.0x41398e.11
mov eax, dword [esp + 0x24]
mov byte [ecx + 0x1c], dl
cmp eax, 5
je 0x4153f9
mov byte [esp + 0x1b], dl
cmp eax, 0x3f
jne 0x4153fe
mov byte [esp + 0x1b], 1
mov eax, dword [ecx + 0x48]
mov bl, byte [esp + 0x1b]
mov byte [eax], bl
mov ebx, dword [esp + 0x3c]
cmp byte [ecx + 0x20], dl
je 0x41549a
mov ecx, dword [esp + 0x5c]
call fcn.004100c7
mov ecx, edx
mov dword [esp + 0x40], eax
xor edx, edx
mov dword [esp + 0x30], ecx
cmp dword [edi + ebx + 8], edx
jne 0x415449
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x30]
mov dword [ecx + 0x2c], eax
mov byte [ecx + 0x19], dl
mov byte [ecx + 0x1f], 1
jmp case.0x41398e.11
lea esi, [esp + 0x80]
push esi
push edx
push ecx
mov ecx, dword [esp + 0x38]
xor edx, edx
push eax
mov ecx, dword [ecx]
call fcn.0040c77f
mov esi, dword [esp + 0x38]
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4170f1
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x40]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x30]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x80]
test eax, eax
mov dword [esp + 0x4c], eax
sete al
xor edx, edx
jmp 0x415501
mov eax, dword [esp + 0x5c]
mov edi, 0x800
test word [eax + 0x1c], di
mov edi, dword [esp + 0x50]
je 0x4154be
mov ecx, eax
call fcn.0040fdd4
mov ecx, dword [esp + 0x2c]
xor edx, edx
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0x18]
lea ebx, [esp + 0x80]
mov ecx, dword [ecx]
push ebx
push edx
cdq
push edx
push eax
mov eax, dword [esp + 0x6c]
mov edx, dword [eax + 0x14]
call fcn.0040c77f
mov ebx, dword [esp + 0x4c]
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4170f1
mov eax, dword [esp + 0x80]
xor edx, edx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x4c], eax
mov al, dl
mov byte [ecx + 0x19], al
mov eax, dword [ecx + 0x48]
mov byte [ecx + 0x1f], dl
mov dword [ecx + 0x68], edx
mov byte [eax], dl
mov eax, dword [esp + 0x24]
cmp eax, 0x74
je 0x415546
cmp eax, 5
je 0x415546
cmp dword [esp + 0x4c], 0
mov ecx, dword [ecx]
jl 0x415534
lea edx, [esp + 0x80]
call fcn.0040caad
jmp 0x41555b
xor eax, eax
cmp byte [ecx + 0x49], 1
setne al
mov dword [esp + 0x80], eax
jmp 0x415577
cmp dword [esp + 0x4c], 0
jge 0x415570
mov ecx, dword [ecx]
lea edx, [esp + 0x80]
call fcn.0040c9ce
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4170f1
mov ecx, dword [esp + 0x2c]
mov byte [ecx + 0x19], al
jmp 0x41557b
mov dword [esp + 0x80], edx
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp dword [esp + 0x80], ecx
jmp 0x414608
mov ecx, dword [edi + ebx + 4]
xor edx, edx
mov eax, dword [esi + 0x30]
mov dword [esp + 0x24], edx
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
mov ecx, dword [eax]
mov dword [esp + 0x40], ecx
test ecx, ecx
je 0x41561e
cmp byte [esp + 0x1b], 0x79
jne 0x4155bd
mov eax, dword [eax + 0x4c]
mov byte [eax + 6], 1
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
jmp 0x4155c1
mov ecx, dword [esp + 0x40]
lea eax, [esp + 0xe4]
push eax
mov eax, dword [esp + 0x60]
push edx
mov eax, dword [eax + 0x18]
cdq
push edx
push eax
mov eax, dword [esp + 0x6c]
mov edx, dword [eax + 0x14]
call fcn.0040c77f
mov ecx, dword [esp + 0x40]
xor edx, edx
mov dword [esp + 0x20], eax
add esp, 0x10
mov eax, dword [ecx + 0x4c]
mov byte [eax + 6], dl
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x4139f6
xor ebx, ebx
mov byte [ecx + 0x1f], dl
cmp dword [esp + 0xe4], edx
mov dword [ecx + 0x68], edx
sete bl
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x3c]
mov cl, byte [edi + ebx]
jmp 0x415626
mov eax, dword [esp + 0x10]
mov cl, byte [esp + 0x1b]
cmp cl, 0x79
jne 0x415636
xor ecx, ecx
cmp dword [esp + 0x24], ecx
jmp 0x414608
xor ecx, ecx
cmp dword [esp + 0x24], ecx
jmp 0x41478f
imul ecx, dword [edi + ebx + 0x10], 0x48
mov eax, dword [esp + 0x28]
mov esi, dword [edi + ebx + 4]
add ecx, dword [eax + 0x4c]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x5c]
call fcn.004101d0
mov ecx, dword [esp + 0x5c]
mov eax, dword [ecx]
mov dword [esp + 0x78], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + esi*4]
mov dword [esp + 0x58], eax
mov eax, dword [eax]
mov dword [esp + 0x68], eax
test eax, eax
je 0x41680a
mov esi, dword [esp + 0x40]
mov eax, dword [esi + 0x14]
mov ecx, eax
mov dword [esp + 0x30], eax
call fcn.00412578
mov ecx, dword [esi + 0x18]
mov edx, dword [esp + 0x58]
sub ecx, eax
mov esi, dword [esp + 0x68]
xor eax, eax
mov dword [esp + 0x40], ecx
mov dword [edx + 0x68], eax
lea edx, [esp + 0x88]
push edx
push eax
mov eax, ecx
mov ecx, esi
cdq
push edx
mov edx, dword [esp + 0x3c]
push eax
call fcn.0040c77f
add esp, 0x10
test eax, eax
jne 0x4170ed
cmp dword [esp + 0x88], eax
jge 0x41570a
lea edx, [esp + 0x88]
mov ecx, esi
call fcn.0040c9ce
cmp dword [esp + 0x88], 0
mov dword [esp + 0x10], eax
je 0x41570a
mov edx, dword [edi + ebx + 8]
mov esi, dword [esp + 0x28]
dec edx
jmp 0x4139fa
mov edx, dword [esp + 0x40]
lea eax, [esp + 0x88]
mov ecx, dword [esp + 0x58]
push eax
push dword [esp + 0x34]
call fcn.00412657
mov dword [esp + 0x18], eax
pop ecx
pop ecx
test eax, eax
jne 0x4170ed
cmp dword [esp + 0x88], eax
jle 0x41574e
mov eax, dword [edi + ebx + 8]
mov esi, dword [esp + 0x28]
xor ecx, ecx
mov dword [esp + 0x14], eax
inc ecx
jmp 0x413852
lea edx, [esp + 0x108]
mov ecx, esi
call fcn.004125a0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4170ed
mov ecx, dword [esp + 0x108]
mov eax, dword [esp + 0x10c]
cmp ecx, dword [esp + 0x78]
jne 0x415782
cmp eax, dword [esp + 0x24]
je 0x41573a
mov edx, dword [esp + 0x5c]
mov dword [edx], ecx
mov dword [edx + 4], eax
mov eax, dword [esp + 0x14]
inc eax
jmp 0x41573e
mov ecx, dword [edi + ebx + 4]
mov eax, dword [esi + 0x30]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
mov ecx, dword [eax]
test ecx, ecx
je case.0x41398e.11
lea eax, [esp + 0xe8]
xor edx, edx
push eax
mov eax, dword [esp + 0x60]
push 0
push dword [eax + 4]
push dword [eax]
call fcn.0040c77f
mov ecx, dword [esp + 0x6c]
add esp, 0x10
mov edx, dword [esp + 0x30]
mov dword [esp + 0x10], eax
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [edx + 0xc], ecx
mov ecx, dword [esp + 0xe8]
test ecx, ecx
mov dword [edx + 8], eax
sete al
mov byte [edx + 0x19], al
xor edx, edx
mov eax, dword [esp + 0x30]
test ecx, ecx
mov byte [eax + 0x1c], dl
mov dword [eax + 0x68], edx
jmp 0x414587
mov edx, dword [edi + ebx + 4]
mov eax, dword [esi + 0x30]
mov ebx, dword [esp + 0x1c]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax + 0x58]
mov eax, dword [eax + 0x5c]
mov dword [ebx], ecx
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x30]
mov eax, dword [eax + edx*4]
add dword [eax + 0x58], 1
adc dword [eax + 0x5c], 0
jmp 0x414310
mov ecx, dword [edi + ebx + 4]
xorps xmm0, xmm0
mov eax, dword [esi + 0x30]
movlpd qword [esp + 0x68], xmm0
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x54], eax
mov ecx, dword [eax]
test ecx, ecx
je 0x415ab4
and dword [esp + 0x58], 0
call fcn.0040f39a
and al, 3
cmp al, 1
jne 0x415248
mov ecx, dword [esp + 0x54]
cmp byte [ecx + 0x1b], 0
jne 0x4159b0
cmp byte [ecx + 0x1d], 0
je 0x41587f
mov eax, dword [ecx + 0x10]
xor edx, edx
mov ecx, dword [ecx + 0x14]
jmp 0x4158f4
mov ecx, dword [ecx]
lea edx, [esp + 0x90]
call fcn.0040c754
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4170f1
mov eax, dword [esp + 0x90]
mov dword [esp + 0x94], eax
test eax, eax
je 0x4158b4
xor eax, eax
inc eax
xor edx, edx
mov ecx, edx
jmp 0x4158f4
mov eax, dword [esp + 0x54]
lea edx, [esp + 0x68]
mov ecx, dword [eax]
call fcn.0040c0a1
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x50], ecx
cmp eax, 0xffffffff
jne 0x4158ec
cmp ecx, 0x7fffffff
jne 0x4158ec
mov edx, dword [esp + 0x54]
mov byte [edx + 0x1b], 1
xor edx, edx
jmp 0x4158fc
push 0
add eax, 1
pop edx
adc ecx, edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x50], ecx
mov edi, dword [edi + ebx + 0xc]
test edi, edi
je 0x415975
imul edi, edi, 0x48
add edi, dword [esi + 0x4c]
mov ecx, edi
call fcn.004101d0
mov ecx, dword [edi]
mov eax, dword [edi + 4]
cmp ecx, 0xffffffff
jne 0x415926
cmp eax, 0x7fffffff
je 0x4170e9
mov ebx, dword [esp + 0x54]
cmp byte [ebx + 0x1b], 0
jne 0x4170e9
add ecx, 1
push 0
pop edx
adc eax, edx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x40], eax
cmp ecx, eax
jg 0x41596a
jl 0x415958
mov eax, dword [esp + 0x3c]
cmp eax, dword [esp + 0x30]
jae 0x41596e
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x50], ecx
jmp 0x41596e
mov eax, dword [esp + 0x3c]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x415979
mov ebx, dword [esp + 0x54]
cmp ecx, 0x7fffffff
ja 0x4159a7
jb 0x415988
cmp eax, 0xffffffff
jae 0x4159a7
mov ecx, eax
mov byte [ebx + 0x1d], 1
mov eax, dword [esp + 0x50]
add ecx, 1
mov dword [ebx + 0x10], ecx
mov ecx, dword [esp + 0x50]
adc eax, edx
mov dword [ebx + 0x14], eax
mov eax, dword [esp + 0x3c]
jmp 0x4159be
mov eax, dword [esp + 0x3c]
mov byte [ebx + 0x1d], dl
jmp 0x4159be
mov ecx, dword [esp + 0x6c]
xor edx, edx
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x54]
cmp byte [ebx + 0x1b], 0
je 0x415aa7
mov eax, dword [esp + 0xc]
mov edi, edx
mov esi, dword [eax + 0x30]
mov ecx, dword [eax + 0x34]
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], ecx
test edi, edi
jne 0x4159fe
mov eax, esi
and eax, 0xffffff
cmp eax, esi
jne 0x4159fe
cmp edx, ecx
jne 0x4159fe
add esi, 1
adc ecx, edx
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], ecx
jmp 0x415a27
push 8
pop eax
lea edx, [esp + 0x68]
mov ecx, eax
call fcn.00405578
mov esi, dword [esp + 0x68]
cmp edi, 5
jge 0x415a21
and esi, 0xffffff
xor edx, edx
mov ecx, edx
jmp 0x4159f4
mov ecx, dword [esp + 0x6c]
xor edx, edx
mov eax, esi
mov dword [esp + 0x50], ecx
or eax, ecx
je 0x415a61
lea eax, [esp + 0x90]
push eax
push edx
push ecx
mov ecx, dword [ebx]
xor edx, edx
push esi
call fcn.0040c77f
mov edx, dword [esp + 0xa0]
add esp, 0x10
mov ecx, dword [esp + 0x50]
inc edi
mov dword [esp + 0x58], eax
mov dword [esp + 0x94], edx
jmp 0x415a6c
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x94]
cmp edi, 0x64
jge 0x415a7f
test eax, eax
jne 0x415a7f
push eax
test edx, edx
pop edx
je 0x4159dc
mov edx, dword [esp + 0xc]
mov dword [esp + 0x3c], esi
mov dword [edx + 0x30], esi
mov esi, dword [esp + 0x28]
mov dword [edx + 0x34], ecx
test eax, eax
jne 0x415aa3
cmp dword [esp + 0x94], 0
je 0x4170e9
mov eax, dword [esp + 0x3c]
xor edx, edx
mov byte [ebx + 0x19], dl
mov byte [ebx + 0x1f], dl
mov dword [ebx + 0x68], edx
jmp 0x415abc
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x1c]
push 4
pop ebx
mov word [edx + 0x1c], bx
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp case.0x41398e.11
imul eax, dword [edi + ebx + 0xc], 0x48
mov ecx, dword [edi + ebx + 4]
imul edx, dword [edi + ebx + 8], 0x48
add eax, dword [esi + 0x4c]
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0x30]
add edx, dword [esi + 0x4c]
mov dword [esp + 0x38], edx
mov ecx, dword [eax + ecx*4]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x2c], ecx
mov edx, dword [eax]
mov dword [esp + 0x54], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x24], edx
mov dl, byte [edi + ebx + 3]
mov byte [esp + 0x1b], dl
test dl, 1
mov edx, dword [esp + 0x38]
je 0x415b2b
inc dword [esi + 0x104]
mov dl, byte [edi + ebx + 3]
mov byte [esp + 0x1b], dl
mov edx, dword [esp + 0x38]
test byte [esp + 0x1b], 2
je 0x415b53
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x4c]
mov eax, dword [eax]
mov ecx, dword [ecx + 4]
mov dword [esi + 0x28], eax
mov eax, esi
mov esi, dword [esp + 0x28]
mov dword [eax + 0x2c], ecx
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x4c]
cmp byte [ecx + 0x1d], 0
je 0x415b72
mov eax, dword [eax + 4]
cmp eax, dword [ecx + 0x14]
jl 0x415b72
jg 0x415b6e
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
cmp eax, dword [ecx + 0x10]
jb 0x415b72
mov byte [ecx + 0x1d], 0
movzx eax, word [edx + 0x1c]
test al, 1
je 0x415b82
and dword [edx + 0x14], 0
and dword [edx + 0x18], 0
cmp byte [ecx + 0x1e], 0
je 0x415c2b
push dword [ecx + 0x38]
call fcn.00403f89
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x58]
pop ecx
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 0x40], eax
mov eax, dword [esp + 0x24]
mov dword [ecx + 0x44], eax
mov eax, dword [edx + 0x18]
mov dword [ecx + 0x34], eax
test byte [edx + 0x1c], 0x40
je 0x415bd9
mov eax, dword [edx + 0x14]
mov dword [ecx + 0x38], eax
mov ax, word [edx + 0x1c]
and ax, word [esp + 0xec]
or ax, word [esp + 0xf0]
mov word [edx + 0x1c], ax
xor edx, edx
jmp 0x415c26
add eax, 2
push eax
call fcn.00403ec2
pop ecx
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 0x38], eax
test eax, eax
je 0x417293
push dword [ecx + 0x34]
mov ecx, dword [esp + 0x3c]
push dword [ecx + 0x14]
push eax
call fcn.00451310
mov eax, dword [esp + 0x38]
add esp, 0xc
xor edx, edx
mov ecx, dword [eax + 0x34]
mov eax, dword [eax + 0x38]
mov byte [ecx + eax], dl
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x34]
mov eax, dword [eax + 0x38]
mov byte [ecx + eax + 1], dl
mov ecx, dword [esp + 0x2c]
mov byte [ecx + 0x1c], dl
jmp 0x415c72
test eax, 0x800
je 0x415c3a
mov eax, dword [edx]
mov dword [esp + 0x30], eax
jmp 0x415c3f
and dword [esp + 0x30], 0
movzx eax, byte [edi + ebx + 3]
mov ecx, dword [ecx]
and eax, 8
push eax
push dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
push dword [edx + 0x18]
push dword [edx + 0x14]
xor edx, edx
push eax
mov eax, dword [esp + 0x68]
push eax
call fcn.0040e955
mov ecx, dword [esp + 0x44]
add esp, 0x18
mov dword [esp + 0x10], eax
xor edx, edx
mov eax, dword [esp + 0x10]
mov byte [ecx + 0x19], dl
mov byte [ecx + 0x1f], dl
mov dword [ecx + 0x68], edx
test eax, eax
jne 0x4139f6
mov edx, dword [esp + 0xc]
mov edx, dword [edx + 0x88]
mov dword [esp + 0x40], edx
test edx, edx
je 0x4139f6
mov edx, dword [edi + ebx + 0x10]
test edx, edx
je 0x4139f6
push dword [esp + 0x24]
imul ecx, dword [ecx + 4], 0x18
push dword [esp + 0x58]
push edx
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 8]
push dword [ecx + eax]
push 4
pop eax
test byte [edi + ebx + 3], al
push 0x12
pop eax
push 0x17
pop ecx
cmovne eax, ecx
push eax
push dword [edx + 0x84]
call dword [esp + 0x58]
add esp, 0x18
jmp 0x4151f4
mov eax, dword [esi + 0x30]
mov ecx, dword [edi + ebx + 4]
mov edx, dword [esp + 0xc]
mov ecx, dword [eax + ecx*4]
xor eax, eax
mov dword [esp + 0x30], ecx
cmp dword [edx + 0x88], eax
je 0x415d19
cmp dword [edi + ebx + 0x10], eax
je 0x415d19
mov eax, dword [ecx + 8]
mov dword [esp + 0xc8], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0xc4], eax
call fcn.00411f20
test eax, eax
jne 0x4170f1
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx]
call fcn.0040eafd
mov edx, dword [esp + 0x30]
xor ecx, ecx
mov dword [esp + 0x10], eax
mov byte [edx + 0x1d], cl
mov dword [edx + 0x68], ecx
test eax, eax
jne 0x415d8f
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x88]
mov dword [esp + 0x40], ecx
test ecx, ecx
je 0x415d8f
mov ecx, dword [edi + ebx + 0x10]
test ecx, ecx
je 0x415d8f
push dword [esp + 0xc4]
push dword [esp + 0xcc]
push ecx
imul ecx, dword [edx + 4], 0x18
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 8]
push dword [ecx + eax]
push 9
push dword [edx + 0x84]
call dword [esp + 0x58]
mov eax, dword [esp + 0x28]
add esp, 0x18
mov edx, dword [esp + 0x14]
xor ecx, ecx
test byte [edi + ebx + 8], 1
mov ebx, dword [esp + 0xc]
je 0x415da6
inc dword [esi + 0x104]
inc ecx
jmp 0x413a01
xor edx, edx
cmp dword [edi + ebx + 4], edx
je 0x415dc4
mov ecx, dword [esp + 0xc]
mov eax, dword [esi + 0x104]
add dword [ecx + 0x40], eax
mov dword [ecx + 0x3c], eax
mov dword [esi + 0x104], edx
jmp case.0x41398e.11
mov ecx, dword [edi + ebx + 4]
mov eax, dword [esi + 0x30]
mov edi, dword [eax + ecx*4]
mov ecx, edi
mov dword [esp + 0x40], edi
mov ebx, dword [edi]
mov dword [esp + 0x30], ebx
call fcn.00411f20
test eax, eax
jne 0x4170f1
mov ecx, ebx
cmp byte [edi + 0x21], al
je 0x415e32
lea edx, [esp + 0x110]
call fcn.0040c0a1
xor ebx, ebx
cmp dword [esp + 0x114], ebx
jg 0x41713b
mov edi, dword [esp + 0x110]
jl 0x415e29
cmp edi, 0x3b9aca00
ja 0x41713b
mov dword [esp + 0xcc], edi
jmp 0x415e53
lea edx, [esp + 0xcc]
call fcn.0040c0e4
mov edi, dword [esp + 0xcc]
cmp edi, 0x3b9aca00
ja 0x41713b
xor ebx, ebx
mov edx, dword [esp + 0x1c]
mov dword [edx + 0x18], edi
cmp edi, 0x20
ja 0x415e69
lea eax, [edx + 0x24]
mov ecx, 0x210
jmp 0x415e82
push edi
call fcn.00403ec2
pop ecx
test eax, eax
je 0x417293
mov edx, dword [esp + 0x1c]
push 0x50
pop ecx
mov dword [edx + 0x20], ebx
mov word [edx + 0x1c], cx
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0x40]
push dword [edx + 0x14]
push edi
cmp byte [eax + 0x21], 0
je 0x415ea6
mov ecx, dword [esp + 0x38]
xor edx, edx
call fcn.0040c4a9
pop ecx
pop ecx
jmp 0x415eb3
push ebx
push dword [esp + 0x3c]
call fcn.0040c4e9
add esp, 0x10
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
mov byte [ecx + 0x1f], 1
jmp 0x4139f6
mov ecx, dword [edi + ebx + 4]
mov eax, dword [esi + 0x30]
mov edi, dword [eax + ecx*4]
mov ecx, edi
call fcn.00411f20
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4170f1
cmp byte [edi + 0x19], al
je 0x415eee
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
jmp 0x415efa
cmp byte [edi + 0x1e], 0
je 0x415f0a
mov eax, dword [edi + 0x40]
mov ecx, dword [edi + 0x44]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], ecx
jmp 0x415f30
cmp byte [edi + 0x1c], 0
jne 0x4170a0
mov ecx, dword [edi]
lea edx, [esp + 0xb0]
call fcn.0040c0a1
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0x1c]
push 4
mov dword [edx], eax
pop eax
mov word [edx + 0x1c], ax
mov dword [edx + 4], ecx
jmp 0x4151f4
mov ecx, dword [edi + ebx + 4]
mov eax, dword [esi + 0x30]
mov eax, dword [eax + ecx*4]
mov byte [eax + 0x1c], 1
mov byte [eax + 0x19], 0
jmp case.0x41398e.11
mov ecx, dword [edi + ebx + 4]
lea edx, [esp + 0xf4]
mov eax, dword [esi + 0x30]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi]
call fcn.0040c754
xor ecx, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xf4]
mov byte [esi + 0x1c], al
mov byte [esi + 0x1f], cl
mov dword [esi + 0x68], ecx
test eax, eax
je 0x41680a
mov eax, dword [edi + ebx + 8]
inc ecx
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0xc]
test eax, eax
jle 0x417097
lea edx, [eax - 1]
mov eax, dword [esp + 0x10]
jmp 0x413a01
mov eax, dword [esi + 0x30]
mov ecx, dword [edi + ebx + 4]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x30], ecx
mov eax, dword [ecx]
mov dword [esp + 0x40], eax
test eax, eax
je 0x416030
mov ecx, eax
call fcn.0040c614
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x41600c
mov ecx, dword [esp + 0x40]
cmp byte [ecx + 0x49], al
jne 0x415ff5
inc eax
xor edx, edx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x10], edx
jmp 0x416015
and dword [esp + 0x8c], 0
call fcn.0040c6ca
mov dword [esp + 0x10], eax
xor edx, edx
xor eax, eax
jmp 0x416015
mov eax, dword [esp + 0x8c]
xor edx, edx
mov ecx, dword [esp + 0x30]
test eax, eax
sete al
mov byte [ecx + 0x1a], al
mov eax, dword [esp + 0x8c]
mov byte [ecx + 0x1f], dl
mov dword [ecx + 0x68], edx
jmp 0x41603a
xor eax, eax
inc eax
mov dword [esp + 0x8c], eax
mov byte [ecx + 0x1c], al
jmp 0x414600
mov eax, dword [esp + 0xc]
xor edx, edx
cmp dword [eax + 0xa8], edx
jne 0x417283
mov ecx, dword [edi + ebx + 4]
mov eax, dword [esi + 0x30]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x40], ecx
test ecx, ecx
je case.0x41398e.11
mov eax, dword [ecx]
cmp byte [ecx + 0x1c], dl
je 0x41607e
mov dword [esp + 0x98], 1
jmp 0x4160be
cmp byte [esp + 0x1b], 0x66
lea edx, [esp + 0x98]
mov ecx, eax
jne 0x416095
call fcn.0040c9ce
jmp 0x41609a
call fcn.0040caad
mov ecx, dword [esp + 0x40]
xor edx, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x98]
mov byte [ecx + 0x1c], al
mov dword [ecx + 0x68], edx
test eax, eax
jne 0x4160be
mov eax, dword [edi + ebx + 8]
dec eax
mov dword [esp + 0x14], eax
mov byte [ecx + 0x19], dl
jmp case.0x41398e.11
mov ecx, dword [edi + ebx + 4]
mov eax, dword [esi + 0x30]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
mov eax, dword [eax]
mov dword [esp + 0x40], eax
test eax, eax
je case.0x41398e.11
mov ecx, dword [esp + 0x64]
mov eax, 0x800
test word [ecx + 0x1c], ax
je 0x416106
call fcn.0040fdd4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4139f6
mov ecx, dword [esp + 0x64]
push dword [edi + ebx + 0xc]
mov eax, dword [ecx + 0x18]
xor ebx, ebx
push ebx
push ebx
cdq
push 0x47a7c4
push edx
mov edx, dword [ecx + 0x14]
mov ecx, dword [esp + 0x54]
push eax
call fcn.0040e955
mov ecx, dword [esp + 0x48]
add esp, 0x18
mov dword [esp + 0x10], eax
mov dword [ecx + 0x68], ebx
jmp 0x4139f6
mov ecx, dword [edi + ebx + 4]
mov eax, dword [esi + 0x30]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x40], eax
mov edi, dword [eax]
test edi, edi
je case.0x41398e.11
mov ecx, dword [esp + 0x64]
lea eax, [esp + 0xf8]
push eax
xor ebx, ebx
push ebx
mov eax, dword [ecx + 0x18]
cdq
push edx
mov edx, dword [ecx + 0x14]
mov ecx, edi
push eax
call fcn.0040c77f
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41618e
cmp dword [esp + 0xf8], ebx
jne 0x41618e
mov ecx, edi
call fcn.0040eafd
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x40]
jmp 0x416130
mov ecx, dword [edi + ebx + 4]
mov eax, dword [esi + 0x30]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
test ecx, ecx
je case.0x41398e.11
cmp byte [eax + 0x1c], 0
jne case.0x41398e.11
lea edx, [esp + 0x118]
call fcn.004125a0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4170f1
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x11c]
push 4
pop eax
mov word [edx + 0x1c], ax
mov eax, dword [esp + 0x118]
mov dword [edx], eax
jmp 0x415f3d
mov ecx, dword [edi + ebx + 4]
mov eax, dword [esi + 0x30]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x24], eax
cmp dword [eax], 0
je case.0x41398e.11
mov edx, dword [esp + 0x5c]
mov ecx, 0x800
test word [edx + 0x1c], cx
je 0x41621f
mov ecx, edx
call fcn.0040fdd4
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x5c]
mov ecx, dword [eax + 0x48]
mov al, byte [edi + ebx + 3]
mov byte [ecx], al
lea eax, [esp + 0x9c]
mov ecx, dword [esp + 0x24]
push eax
push dword [edx + 0x14]
mov edx, dword [edx + 0x18]
call fcn.00412657
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x2c]
pop ecx
pop ecx
mov eax, dword [eax + 0x48]
mov byte [eax], 0
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x4139f6
cmp byte [edi + ebx], 0x27
mov ecx, dword [esp + 0x9c]
jne 0x41626c
neg ecx
jmp 0x416271
mov eax, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x9c], ecx
test ecx, ecx
jle 0x4139f6
mov eax, dword [edi + ebx + 8]
jmp 0x415742
mov ecx, dword [esp + 0xc]
xor eax, eax
mov edx, eax
mov ecx, dword [ecx + 0x5c]
test ecx, ecx
je 0x4162c0
cmp dword [ecx + 0x44], 0xbdf20da3
jne 0x4162b0
cmp byte [ecx + 0x101], 2
jae 0x4162b0
cmp dword [ecx + 0x70], eax
jl 0x4162b0
inc edx
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x416298
cmp edx, 1
jg 0x417122
imul ecx, dword [edi + ebx + 0xc], 0x18
mov eax, dword [esp + 0xc]
mov esi, dword [edi + ebx + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x40], ecx
mov edi, dword [ecx + eax + 4]
mov ecx, edi
call fcn.00409f8a
mov ecx, dword [edi + 4]
mov edx, esi
mov eax, dword [edi]
mov dword [ecx + 4], eax
lea eax, [esp + 0xfc]
push eax
mov ecx, edi
call fcn.0040f11f
pop ecx
mov ecx, edi
mov dword [esp + 0x10], eax
call fcn.00409fed
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0xfc]
push 4
pop eax
mov word [ecx + 0x1c], ax
mov eax, esi
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
mov dword [ecx + 4], edx
test eax, eax
jne 0x41680e
test esi, esi
je 0x41680e
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0x40]
mov ebx, dword [eax + ebx + 4]
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 8]
mov ecx, dword [edi + edx + 0x14]
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x416365
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x14], esi
jne 0x41635b
mov dword [ecx + 0x14], ebx
mov eax, dword [eax]
test eax, eax
jne 0x416350
mov ecx, dword [edi + edx + 0x14]
mov eax, dword [ecx + 0x24]
test eax, eax
je 0x41680a
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x14], esi
jne 0x41637b
mov dword [ecx + 0x14], ebx
mov eax, dword [eax]
test eax, eax
jne 0x416370
jmp 0x41578b
imul eax, dword [edi + ebx + 8], 0x18
mov ecx, dword [esp + 0xc]
mov edx, dword [edi + ebx + 4]
mov ecx, dword [ecx + 8]
mov ecx, dword [eax + ecx + 4]
call fcn.0040f0ad
jmp 0x414b73
imul ecx, dword [edi + ebx + 4], 0x18
mov ebx, dword [esp + 0xc]
push 5
pop eax
push 2
add ecx, dword [ebx + 8]
cmp dl, 0x31
pop edx
cmovne eax, edx
lea edx, [esp + 0xa8]
push eax
mov ecx, dword [ecx + 4]
call fcn.0040ef6d
mov dword [esp + 0x14], eax
pop ecx
test eax, eax
jne 0x4170a4
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xa8]
cdq
push 4
mov dword [ecx], eax
pop eax
mov dword [ecx + 4], edx
mov word [ecx + 0x1c], ax
mov eax, dword [esp + 0x14]
xor ecx, ecx
inc eax
inc ecx
mov dword [esp + 0x14], eax
jmp 0x413856
cmp dword [edi + ebx + 8], 0
mov edx, dword [edi + ebx + 4]
jne 0x416429
mov eax, dword [esp + 0xc]
imul ecx, edx, 0x18
mov eax, dword [eax + 8]
mov eax, dword [ecx + eax + 0x14]
xor ecx, ecx
inc ecx
test byte [eax + 0x5a], cl
je 0x413c6d
jmp 0x41642c
xor ecx, ecx
inc ecx
mov eax, dword [esp + 0xc]
cmp edx, ecx
push dword [edi + ebx + 0x10]
mov dword [esp + 0x12c], eax
mov edi, str.sqlite_temp_master
lea eax, [esi + 0xf4]
mov dword [esp + 0x130], edx
mov dword [esp + 0x134], eax
mov eax, str.sqlite_master
cmove eax, edi
imul ecx, edx, 0x18
mov edx, dword [esp + 0x10]
push eax
mov eax, dword [edx + 8]
push dword [ecx + eax]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s
push edx
call fcn.004053a6
mov edi, eax
add esp, 0x14
test edi, edi
je 0x417293
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x128]
xor ebx, ebx
push ebx
push ecx
push fcn.00420077
push edi
push eax
mov byte [eax + 0x50], 1
call fcn.0041fd7f
add esp, 0x14
push 4
pop ecx
cmp eax, ecx
push edi
cmove eax, dword [esp + 0x138]
mov dword [esp + 0x14], eax
call fcn.00403f89
mov eax, dword [esp + 0x10]
pop ecx
xor ecx, ecx
inc ecx
mov byte [eax + 0x50], bl
mov eax, dword [esp + 0x10]
cmp eax, 7
je 0x417296
jmp 0x413c71
mov edx, dword [edi + ebx + 4]
mov ebx, dword [esp + 0xc]
mov ecx, ebx
call fcn.0041bb1a
jmp 0x4150be
push dword [edi + ebx + 0x10]
mov edx, dword [edi + ebx + 4]
mov ebx, dword [esp + 0x10]
mov ecx, ebx
call fcn.0041c872
pop ecx
jmp 0x414f7d
push dword [edi + ebx + 0x10]
mov edx, dword [edi + ebx + 4]
mov ebx, dword [esp + 0x10]
mov ecx, ebx
call fcn.0041c556
jmp 0x416501
mov edx, dword [edi + ebx + 0x10]
mov ecx, edx
mov edi, dword [edi + ebx + 4]
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x416529
sub ecx, ebx
mov ebx, dword [esp + 0xc]
push 0
push ecx
imul ecx, edi, 0x18
mov eax, dword [ebx + 8]
mov ecx, dword [ecx + eax + 0x14]
add ecx, 0x2c
call fcn.00406818
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x414f7d
mov ecx, edi
call fcn.00423a90
mov ecx, dword [eax + 0x20]
cmp ecx, edi
jne 0x416576
mov ecx, dword [edi + 0x28]
mov dword [eax + 0x20], ecx
jmp 0x416582
mov eax, dword [ecx + 0x28]
cmp eax, edi
je 0x41657c
mov ecx, eax
test ecx, ecx
jne 0x41656d
jmp 0x416582
mov eax, dword [eax + 0x28]
mov dword [ecx + 0x28], eax
mov ecx, edi
call fcn.00423965
mov eax, ebx
push 0x10
pop ecx
or dword [eax + 0xc], ecx
jmp 0x414f7d
mov eax, dword [edi + ebx + 8]
mov dword [esp + 0x4c], eax
lea eax, [eax*4 + 4]
push eax
call fcn.00403ec2
mov edx, eax
mov dword [esp + 0x5c], edx
pop ecx
test edx, edx
je 0x417293
imul ecx, dword [edi + ebx + 4], 0x48
imul eax, dword [edi + ebx + 0xc], 0x48
add ecx, dword [esi + 0x4c]
add eax, dword [esi + 0x4c]
mov dword [esp + 0x20], ecx
xor ecx, ecx
mov dword [esp + 0x30], eax
cmp dword [esp + 0x4c], ecx
jle 0x416614
mov edi, dword [esp + 0x20]
mov esi, ecx
mov ebx, dword [esp + 0x4c]
mov ecx, edi
call fcn.004100c7
mov edx, dword [esp + 0x58]
push 0x48
mov dword [edx + esi*4], eax
inc esi
pop eax
add edi, eax
cmp esi, ebx
jl 0x4165e4
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x50]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
and dword [edx + ecx*4], 0
lea ecx, [esp + 0xb8]
push ecx
push dword [eax]
movzx eax, byte [edi + ebx + 3]
mov ecx, dword [esp + 0x14]
push dword [esp + 0x54]
imul eax, eax, 0x18
mov ecx, dword [ecx + 8]
mov ecx, dword [eax + ecx + 4]
call fcn.0040fabc
mov ecx, dword [esp + 0x3c]
mov edi, eax
mov eax, dword [esp + 0xc4]
add esp, 0xc
mov ebx, dword [esp + 0x20]
cdq
sub dword [ecx], eax
sbb dword [ecx + 4], edx
mov ecx, ebx
call fcn.0041020e
cmp dword [esp + 0xb8], 0
je 0x416686
mov dword [ebx + 0x14], edi
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x41666f
push 0x62
sub edi, ecx
and dword [ebx + 0x20], 0
pop eax
mov dword [ebx + 0x18], edi
mov word [ebx + 0x1c], ax
movzx edx, byte [esp + 0x60]
mov ecx, ebx
mov byte [ebx + 0x1f], 1
call fcn.0040fdba
push dword [esp + 0x58]
call fcn.00403f89
jmp 0x413bfd
mov ecx, dword [esp + 0x20]
call fcn.004100c7
mov edi, dword [esi + 0x60]
mov ebx, eax
mov dword [esp + 0x40], edx
test edi, edi
jne 0x4166d4
push 0x14
pop ecx
call fcn.0040fd6b
mov edi, eax
mov dword [esi + 0x5c], edi
mov dword [esi + 0x60], edi
test edi, edi
je 0x417293
jmp 0x4166f3
mov eax, dword [edi + 4]
cmp eax, dword [edi]
jl 0x4166f3
mov ecx, dword [esi + 0x58]
call fcn.0040fd6b
mov dword [edi + 0xc], eax
test eax, eax
je 0x417293
mov dword [esi + 0x60], eax
mov edi, eax
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x40]
mov dword [edi + eax*8 + 0x10], ebx
mov dword [edi + eax*8 + 0x14], ecx
inc dword [edi + 4]
inc dword [esi + 0x58]
jmp case.0x41398e.11
mov eax, dword [esp + 0xc]
xor edx, edx
cmp dword [eax + 0xa8], edx
jne 0x417283
imul ecx, dword [edi + ebx + 4], 0x48
add ecx, dword [esi + 0x4c]
mov dword [esp + 0x1c], ecx
test byte [ecx + 0x1c], 0x40
je 0x41673c
call fcn.00410051
mov ecx, dword [esp + 0x1c]
xor edx, edx
push 4
pop eax
mov word [ecx + 0x1c], ax
cmp dword [esi + 0x58], edx
jne 0x416756
mov eax, dword [edi + ebx + 8]
dec eax
mov dword [esp + 0x14], eax
jmp case.0x41398e.11
mov edx, dword [esi + 0x5c]
mov ebx, dword [esp + 0x1c]
mov eax, dword [edx + 8]
mov ecx, dword [edx + eax*8 + 0x10]
mov eax, dword [edx + eax*8 + 0x14]
mov dword [ebx], ecx
mov dword [ebx + 4], eax
inc dword [edx + 8]
dec dword [esi + 0x58]
mov eax, dword [edx + 8]
cmp eax, dword [edx + 4]
jl case.0x41398e.11
mov eax, dword [edx + 0xc]
push edx
mov dword [esi + 0x5c], eax
call fcn.00403f89
mov eax, dword [esp + 0x14]
xor edx, edx
mov ebx, dword [esp + 0x10]
pop ecx
xor ecx, ecx
inc ecx
cmp dword [esi + 0x58], edx
jne 0x414f84
mov dword [esi + 0x60], edx
jmp 0x414f84
mov edi, dword [esi + 0x64]
lea eax, [edi + 1]
mov dword [esi + 0x64], eax
cmp edi, dword [esi + 0x68]
jl 0x4167da
mov edx, dword [esi + 0x6c]
mov ecx, dword [esp + 0xc]
mov dword [esi + 0x68], eax
lea eax, [edi + 1]
imul eax, eax, 0x18
push eax
call fcn.00404269
mov dword [esi + 0x6c], eax
pop ecx
test eax, eax
je 0x417293
mov ecx, dword [esp + 0xc]
imul edi, edi, 0x18
mov eax, dword [ecx + 0x28]
mov ecx, dword [ecx + 0x2c]
add edi, dword [esi + 0x6c]
mov dword [edi], eax
mov dword [edi + 4], ecx
lea ecx, [esi + 0x58]
mov eax, dword [esi + 0x104]
mov esi, ecx
mov dword [edi + 8], eax
add edi, 0xc
xor eax, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, ecx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x28]
jmp 0x4139f6
dec dword [esi + 0x64]
imul esi, dword [esi + 0x64], 0x18
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0xc]
add esi, dword [edx + 0x6c]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [edi + 0x2c], ecx
mov dword [edi + 0x28], eax
lea edi, [edx + 0x58]
mov eax, dword [esi + 8]
mov ecx, edi
mov dword [edx + 0x104], eax
call fcn.0040fd97
add esi, 0xc
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x41680a
mov ebx, dword [esp + 0x20]
mov ecx, ebx
call fcn.004101d0
mov edi, dword [esp + 0x64]
mov ecx, edi
call fcn.004101d0
mov ecx, dword [edi + 4]
mov eax, dword [edi]
cmp dword [ebx + 4], ecx
jg case.0x41398e.11
jl 0x4146ef
cmp dword [ebx], eax
jae case.0x41398e.11
jmp 0x4146ef
mov eax, dword [esp + 0x20]
xor edx, edx
cmp dword [eax + 4], edx
jl case.0x41398e.11
jg 0x416748
cmp dword [eax], edx
jbe case.0x41398e.11
jmp 0x416748
mov eax, dword [esp + 0x20]
xor edx, edx
cmp dword [eax + 4], edx
jg case.0x41398e.11
jl 0x416748
cmp dword [eax], edx
jae case.0x41398e.11
jmp 0x416748
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne case.0x41398e.11
jmp 0x416748
imul ecx, dword [edi + ebx + 8], 0x48
mov edx, dword [esi + 0x24]
movzx eax, byte [edi + ebx + 3]
mov dword [esp + 0x30], edx
xor edx, edx
mov dword [esp + 0x58], eax
add ecx, dword [esi + 0x4c]
test eax, eax
je 0x416922
mov esi, dword [esp + 0x30]
mov ebx, edx
mov edi, eax
mov dword [esi + ebx*4], ecx
call fcn.004135f4
push 0x48
pop eax
inc ebx
add ecx, eax
cmp ebx, edi
jl 0x416904
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x28]
mov eax, dword [edi + ebx + 0x10]
mov ecx, dword [esi + 0x4c]
mov dword [esp + 0x140], eax
imul eax, dword [edi + ebx + 0xc], 0x48
add eax, ecx
mov dword [esp + 0x190], eax
inc dword [eax + 0x18]
xor eax, eax
mov ecx, dword [esp + 0x140]
inc eax
mov word [esp + 0x164], ax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x15c], edx
mov dword [esp + 0x168], edx
mov dword [esp + 0x158], eax
mov dword [esp + 0x194], edx
mov dword [esp + 0x198], edx
cmp byte [ecx + 3], dl
je 0x41698a
mov eax, dword [edi + ebx - 4]
mov dword [esp + 0x198], eax
push dword [esp + 0x30]
lea eax, [esp + 0x144]
push dword [esp + 0x5c]
push eax
call dword [ecx + 0x14]
add esp, 0xc
cmp dword [esp + 0x194], 0
je 0x4169d7
push 0
push ecx
mov dl, 1
lea ecx, [esp + 0x150]
call fcn.004106e6
pop ecx
push eax
lea eax, [esi + 0xf4]
push eax
call fcn.00404339
mov eax, dword [esp + 0x1a0]
add esp, 0xc
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x148]
jmp 0x414422
imul eax, dword [edi + ebx + 4], 0x48
mov edx, dword [edi + ebx + 0x10]
add eax, dword [esi + 0x4c]
mov ecx, eax
mov dword [esp + 0x30], eax
call fcn.0040ffc6
mov edi, dword [esp + 0x30]
xor ecx, ecx
inc ecx
mov dword [esp + 0x10], eax
cmp eax, ecx
jne 0x4140e1
push 0
push ecx
mov dl, cl
mov ecx, edi
call fcn.004106e6
pop ecx
push eax
lea eax, [esi + 0xf4]
push eax
call fcn.00404339
add esp, 0xc
jmp 0x4140e1
xor edx, edx
jmp 0x4151f0
imul ecx, dword [edi + ebx + 4], 0x18
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
mov eax, dword [ecx + eax + 4]
mov dword [esp + 0x58], eax
mov ecx, dword [eax + 4]
mov dword [esp + 0x30], ecx
mov ecx, eax
call fcn.00409f8a
mov ecx, dword [esp + 0x58]
mov eax, dword [ecx]
mov ecx, dword [esp + 0x30]
cmp byte [ecx + 0x16], 0
mov dword [ecx + 4], eax
jne 0x416a75
mov dword [esp + 0x10], 0x65
jmp 0x416a89
call fcn.0040a2ae
mov ecx, dword [esp + 0x30]
xor edx, edx
call fcn.0040b95d
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x58]
call fcn.00409fed
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp eax, 0x65
jne 0x416aac
mov eax, dword [edi + ebx + 8]
dec eax
mov dword [esp + 0x14], eax
xor eax, eax
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x14]
jmp 0x4139fc
cmp dword [edi + ebx + 4], 0
mov ebx, dword [esp + 0xc]
jne 0x416acc
mov ecx, ebx
call fcn.004126ef
jmp 0x414f7d
mov byte [esi + 0xff], 1
jmp 0x414f7d
mov ecx, dword [edi + ebx + 4]
mov edx, ecx
mov ebx, dword [edi + ebx + 8]
mov eax, ecx
shr edx, 0x1f
not eax
test dl, dl
cmove eax, ecx
imul ecx, eax, 0x18
inc dl
mov eax, dword [esp + 0xc]
mov byte [esp + 0xbc], dl
mov eax, dword [eax + 8]
mov edi, dword [ecx + eax + 4]
mov ecx, edi
call fcn.00409f8a
push dword [esp + 0xbc]
mov edx, ebx
mov ecx, edi
call fcn.0040a19e
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x416b3a
push dword [esp + 0xbc]
mov edx, ebx
call fcn.0040a1ff
pop ecx
mov dword [esp + 0x10], eax
mov ecx, edi
call fcn.00409fed
jmp case.0x41398e.11
mov ecx, dword [esp + 0xc]
xor edx, edx
mov edi, dword [edi + ebx + 0x10]
mov dword [esp + 0x10], edx
cmp dword [ecx + 0xdc], edx
jne 0x416b68
cmp dword [ecx + 0xe0], edx
jg 0x417130
test edi, edi
je 0x4151f0
mov eax, dword [edi]
mov ebx, dword [eax + 0x38]
mov eax, edx
mov dword [esp + 0x30], ebx
test ebx, ebx
je 0x416bde
mov ecx, dword [ecx + 0xe0]
test ecx, ecx
jle 0x416bc0
mov ebx, dword [esp + 0xc]
mov esi, dword [ebx + 0xdc]
mov ebx, dword [esp + 0x30]
cmp dword [esi + eax*4], edx
mov esi, dword [esp + 0x28]
je 0x416bc0
mov ebx, dword [esp + 0xc]
mov esi, dword [ebx + 0xdc]
mov ebx, dword [esp + 0x30]
cmp dword [esi + eax*4], edi
mov esi, dword [esp + 0x28]
je 0x4151f0
inc eax
cmp eax, ecx
jl 0x416b89
push edi
call ebx
pop ecx
test eax, eax
jne 0x4172a0
mov ebx, dword [esp + 0xc]
mov edx, edi
mov ecx, ebx
call fcn.00423f20
jmp 0x4150be
mov ebx, ecx
jmp 0x414f81
imul ecx, dword [edi + ebx + 4], 0x18
mov eax, dword [esp + 0xc]
mov edx, dword [edi + ebx + 0x10]
mov ebx, dword [esp + 0xc]
mov eax, dword [eax + 8]
push dword [ecx + eax]
mov ecx, ebx
call fcn.0041c40b
mov edi, eax
xor edx, edx
pop ecx
mov ecx, dword [edi + 0x48]
cmp dword [edi + 0x3c], edx
jne 0x416c2e
push dword [ecx]
push 0x47ad44
push ebx
call fcn.004053a6
mov dword [esi + 0xf4], eax
add esp, 0xc
xor eax, eax
inc eax
jmp 0x4150be
mov eax, edx
mov edx, dword [edi + 0x40]
mov dword [esp + 0x10], eax
test edx, edx
je 0x414f81
jmp 0x416bd2
and dword [esp + 0x10], 0
push 2
pop eax
mov byte [esi + 0x101], al
imul ecx, dword [edi + ebx + 4], 0x18
mov eax, dword [esp + 0xc]
mov edx, dword [edi + ebx + 0x10]
mov ebx, dword [esp + 0xc]
mov eax, dword [eax + 8]
push dword [ecx + eax]
mov ecx, ebx
call fcn.0041c40b
mov edi, eax
xor edx, edx
pop ecx
cmp dword [edi + 0x40], edx
je 0x416c9a
mov ecx, dword [edi + 0x3c]
mov dword [esp + 0x10], edx
mov ecx, dword [ecx]
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x416c97
push dword [edi + 0x40]
call eax
xor edx, edx
mov dword [esp + 0x14], eax
pop ecx
test eax, eax
jne 0x416c9a
mov dword [edi + 0x40], edx
mov byte [esi + 0x101], dl
jmp 0x414f7d
mov eax, dword [edi + ebx + 0x10]
lea edx, [esp + 0x38]
and dword [esp + 0x38], 0
push edx
push eax
mov ecx, dword [eax]
mov dword [esp + 0x48], eax
mov dword [esp + 0x38], ecx
call dword [ecx + 0x18]
mov dword [esp + 0x18], eax
pop ecx
pop ecx
test eax, eax
jne 0x4139f6
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
push 0xffffffffffffffff
mov dword [eax], ecx
mov ecx, esi
mov edx, dword [edi + ebx + 4]
call fcn.0041361f
pop ecx
test eax, eax
je 0x416d02
mov ecx, dword [esp + 0x38]
mov dword [eax + 0x60], ecx
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx]
mov ecx, dword [ecx]
mov dword [eax + 0x64], ecx
jmp 0x4151f4
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x30]
push dword [esp + 0x38]
mov byte [ebx + 0x1e], 1
call dword [eax + 0x1c]
pop ecx
jmp 0x4163f1
mov ecx, dword [edi + ebx + 4]
mov eax, dword [esi + 0x30]
imul edx, dword [edi + ebx + 0xc], 0x48
and dword [esp + 0x40], 0
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x24], eax
add edx, dword [esi + 0x4c]
mov eax, dword [eax + 0x60]
mov ecx, dword [edx]
mov dword [esp + 0x78], ecx
mov eax, dword [eax]
mov ecx, dword [esi + 0x24]
mov dword [esp + 0x58], ecx
mov eax, dword [eax]
mov dword [esp + 0x68], eax
mov eax, dword [edx + 0x48]
mov dword [esp + 0x30], eax
test eax, eax
jle 0x416d8f
mov ebx, dword [esp + 0x40]
lea ecx, [edx + 0x90]
mov edx, dword [esp + 0x58]
mov edi, eax
push 0x48
pop esi
mov dword [edx + ebx*4], ecx
call fcn.004135f4
inc ebx
add ecx, esi
cmp ebx, edi
jl 0x416d6c
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x58]
push ecx
push eax
mov eax, dword [esp + 0x2c]
mov byte [esi + 0x101], 1
push dword [edi + ebx + 0x10]
push dword [esp + 0x84]
push dword [eax + 0x60]
mov eax, dword [esp + 0x7c]
call dword [eax + 0x20]
xor edx, edx
mov dword [esp + 0x24], eax
add esp, 0x14
mov byte [esi + 0x101], dl
test eax, eax
jne 0x416de6
mov eax, dword [esp + 0x24]
push dword [eax + 0x60]
mov eax, dword [esp + 0x6c]
call dword [eax + 0x28]
pop ecx
test eax, eax
je 0x416de0
mov eax, dword [edi + ebx + 8]
dec eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
xor edx, edx
mov ecx, dword [esp + 0x24]
mov byte [ecx + 0x1c], dl
jmp 0x4139f6
mov ecx, dword [edi + ebx + 4]
mov eax, dword [esi + 0x30]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx + 0x1c], 0
jne case.0x41398e.11
mov ecx, dword [ecx + 0x60]
lea edx, [esp + 0x120]
push edx
push ecx
mov eax, dword [ecx]
mov eax, dword [eax]
call dword [eax + 0x30]
mov edx, dword [esp + 0x24]
pop ecx
pop ecx
mov ecx, dword [esp + 0x124]
mov dword [esp + 0x10], eax
push 4
pop eax
mov word [edx + 0x1c], ax
mov eax, dword [esp + 0x120]
jmp 0x415ac7
mov eax, dword [esi + 0x30]
mov ecx, dword [edi + ebx + 4]
mov ecx, dword [eax + ecx*4]
imul eax, dword [edi + ebx + 0xc], 0x48
mov dword [esp + 0x40], ecx
add eax, dword [esi + 0x4c]
cmp byte [ecx + 0x1c], 0
mov dword [esp + 0x30], eax
je 0x416e64
mov ecx, eax
jmp 0x413f83
mov eax, dword [ecx + 0x60]
push 0x60
mov eax, dword [eax]
mov esi, dword [eax]
pop eax
push eax
lea eax, [esp + 0x144]
push 0
push eax
call fcn.004510e0
xor eax, eax
add esp, 0xc
inc eax
mov word [esp + 0x164], ax
mov eax, dword [esp + 0xc]
push dword [edi + ebx + 8]
mov dword [esp + 0x15c], eax
lea eax, [esp + 0x144]
push eax
mov eax, dword [esp + 0x48]
push dword [eax + 0x60]
call dword [esi + 0x2c]
movzx edx, byte [esp + 0x6c]
lea ecx, [esp + 0x154]
add esp, 0xc
mov dword [esp + 0x10], eax
call fcn.0040fdba
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x148]
call fcn.0041030c
mov ecx, dword [esp + 0x30]
call fcn.004102b6
mov esi, dword [esp + 0x28]
jmp 0x4140e8
mov ecx, dword [edi + ebx + 4]
mov eax, dword [esi + 0x30]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x40], ecx
cmp byte [ecx + 0x1c], 0
jne case.0x41398e.11
mov eax, dword [ecx + 0x60]
mov eax, dword [eax]
mov eax, dword [eax]
mov byte [esi + 0x101], 1
push dword [ecx + 0x60]
mov dword [esp + 0x34], eax
call dword [eax + 0x24]
mov dword [esp + 0x14], eax
mov byte [esi + 0x101], 0
pop ecx
test eax, eax
jne 0x414591
mov eax, dword [esp + 0x40]
push dword [eax + 0x60]
mov eax, dword [esp + 0x34]
call dword [eax + 0x28]
test eax, eax
mov eax, dword [esp + 0x14]
pop ecx
jne 0x4139f6
jmp 0x414591
mov eax, dword [edi + ebx + 0x10]
imul edi, dword [edi + ebx + 4], 0x48
mov dword [esp + 0x40], eax
add edi, dword [esi + 0x4c]
test byte [edi + 0x1c], 0x12
jne 0x416f75
movzx edx, byte [esp + 0x60]
mov ecx, edi
call fcn.0040ff54
test eax, eax
jne 0x417293
mov ebx, dword [esp + 0x40]
inc dword [ebx + 4]
push dword [edi + 0x14]
mov eax, dword [ebx]
push ebx
call dword [eax + 0x4c]
sub dword [ebx + 4], 1
pop ecx
pop ecx
mov dword [esp + 0x10], eax
jne 0x4139f6
mov eax, dword [ebx]
push ebx
mov eax, dword [eax + 0x10]
call eax
jmp 0x413bfd
mov edx, dword [edi + ebx + 0x10]
mov eax, dword [edi + ebx + 8]
mov dword [esp + 0x24], eax
xor eax, eax
mov dword [esp + 0x58], edx
mov ecx, dword [edx]
mov dword [esp + 0x68], ecx
cmp dword [ecx + 0x34], eax
je 0x417142
mov ecx, dword [esi + 0x24]
mov dword [esp + 0x30], ecx
imul ecx, dword [edi + ebx + 0xc], 0x48
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x24]
add ecx, dword [esi + 0x4c]
test eax, eax
jle 0x41700e
mov esi, dword [esp + 0x40]
mov ebx, eax
mov edi, dword [esp + 0x30]
push 0x48
pop edx
call fcn.004135f4
mov dword [edi + esi*4], ecx
add ecx, edx
inc esi
cmp esi, ebx
jl 0x416feb
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x24]
inc dword [edx + 4]
lea ecx, [esp + 0xd0]
push ecx
push dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x74]
push edx
call dword [eax + 0x34]
mov ecx, dword [esp + 0x68]
add esp, 0x10
mov dword [esp + 0x10], eax
sub dword [ecx + 4], 1
jne 0x417044
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 0x10]
call eax
mov eax, dword [esp + 0x14]
pop ecx
cmp dword [edi + ebx + 4], 0
je 0x4139f6
mov ebx, dword [esp + 0xc]
test eax, eax
jne 0x4170a4
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x2c], ecx
jmp 0x4163f1
mov ecx, dword [edi + ebx + 0x10]
test ecx, ecx
je case.0x41398e.11
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x64]
test eax, eax
je case.0x41398e.11
push ecx
push dword [edx + 0x68]
call eax
pop ecx
jmp 0x413bfd
mov eax, dword [esp + 0x10]
jmp 0x414f84
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
xor ecx, ecx
jmp 0x415da6
push 9
jmp 0x41729f
lea ecx, [esp + 0x1a8]
call fcn.00410051
jmp 0x417293
push 0x14
pop eax
jmp 0x4170f1
mov edx, dword [esp + 0x14]
mov dword [esi + 0x70], edx
jmp 0x4171b4
mov edx, dword [esp + 0x14]
mov dword [esi + 0x70], edx
mov ebx, ecx
mov dword [esi + 0x74], ecx
jmp 0x4172ad
push 0xd
jmp 0x4170c9
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0xc]
push 7
cmp byte [ecx + 0x1e], 0
pop ecx
cmovne eax, ecx
push 0
mov dword [esp + 0x14], eax
lea eax, [esi + 0xf4]
push 0x47a7c4
push eax
call fcn.00404339
mov eax, dword [esp + 0x1c]
add esp, 0xc
jmp 0x4172a0
push 6
pop eax
push 2
pop ecx
mov dword [esi + 0x7c], ecx
jmp 0x4172a0
push 6
jmp 0x41729f
mov esi, dword [esp + 0x28]
push 0x12
jmp 0x41729f
xor eax, eax
inc eax
jmp 0x4172a0
mov edx, dword [esp + 0xc]
xor ecx, ecx
mov al, byte [edi + ebx + 4]
inc ecx
mov byte [esp + 0x1b], al
cmp dword [edx + 0x60], ecx
jle 0x417168
test al, al
je 0x417168
cmp byte [edx + 0x1c], 0
je 0x41716d
cmp al, byte [edx + 0x1c]
jne 0x417174
mov eax, ecx
jmp 0x4172a0
cmp dword [edi + ebx + 8], 0
je 0x41718e
mov ecx, edx
call fcn.00429115
mov ecx, dword [esp + 0xc]
xor eax, eax
inc eax
mov byte [ecx + 0x1c], al
jmp 0x4171c1
mov ecx, esi
mov byte [edx + 0x1c], al
call fcn.00411ab7
push 5
pop edi
cmp eax, edi
jne 0x4171be
mov ecx, dword [esp + 0xc]
xor eax, eax
mov edx, dword [esp + 0x14]
inc eax
sub al, byte [esp + 0x1b]
mov dword [esi + 0x70], edx
mov byte [ecx + 0x1c], al
mov ebx, edi
mov dword [esi + 0x74], edi
jmp 0x4172ad
xor eax, eax
inc eax
push 0x65
pop ebx
jmp 0x41720d
mov eax, dword [edi + ebx + 4]
mov edx, dword [esp + 0x14]
mov dword [esi + 0x74], eax
mov dword [esi + 0x70], edx
mov eax, dword [edi + ebx + 8]
mov dword [esi + 0x7c], eax
mov eax, dword [edi + ebx + 0x10]
test eax, eax
je 0x4171f5
push 0
push eax
lea eax, [esi + 0xf4]
push eax
call fcn.00404339
add esp, 0xc
mov ecx, esi
call fcn.00411ab7
push 5
pop ecx
cmp eax, ecx
je 0x4170df
push 0x65
pop ebx
push 1
pop eax
cmp dword [esi + 0x74], 0
cmovne ebx, eax
jmp 0x4172ad
mov eax, dword [esi + 0x54]
push 2
pop ecx
add eax, ecx
or eax, 1
mov dword [esi + 0x54], eax
imul ecx, dword [edi + ebx + 4], 0x48
mov eax, dword [esi + 0x4c]
add eax, ecx
mov dword [esi + 0xf8], eax
cmp dword [edi + ebx + 8], 0
mov dword [esp + 0xa8], eax
jle 0x417273
mov esi, eax
mov ecx, esi
call fcn.0040fed0
mov ecx, esi
call fcn.004135f4
mov eax, dword [esp + 0xc0]
push 0x48
inc eax
pop ecx
add esi, ecx
mov dword [esp + 0xc0], eax
cmp eax, dword [edi + ebx + 8]
jl 0x417247
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
inc dword [esi + 0x50]
inc eax
push 0x64
mov dword [esi + 0x70], eax
pop ebx
jmp 0x4172ad
push 9
pop eax
mov dword [esi + 0x74], eax
push edx
jmp 0x417101
mov esi, dword [esp + 0x28]
xor ecx, ecx
inc ecx
mov eax, dword [esp + 0xc]
push 7
mov byte [eax + 0x1e], cl
pop eax
xor ebx, ebx
mov dword [esi + 0x74], eax
mov ecx, esi
inc ebx
call fcn.00411ab7
mov ecx, dword [esp + 0x84]
call fcn.0040a149
mov ecx, dword [esp + 0x2fc]
mov eax, ebx
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0044d024
mov esp, ebp
pop ebp
ret