Function at 0x4138e8
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, 0x2dc
mov eax, dword [0x475008]
xor eax, esp
mov dword [esp + 0x2d8], eax
push ebx
push esi
push edi
mov edi, ecx
xor ecx, ecx
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x94], ecx
mov eax, dword [edi]
mov dword [esp + 0x14], eax
mov dword [esp + 0x38], edi
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x14]
mov al, byte [eax + 0x59]
mov byte [esp + 0x58], al
lea eax, [edi + 0x114]
mov ecx, eax
mov dword [esp + 0x74], eax
call fcn.00409fdc
xor eax, eax
push 7
pop ecx
inc eax
cmp dword [edi + 0x74], ecx
je 0x413d8e
mov eax, dword [esp + 0x14]
xor edx, edx
mov dword [edi + 0x74], edx
mov dword [edi + 0xf8], edx
mov dword [eax + 0x114], edx
cmp dword [eax + 0xa8], edx
jne 0x416fd7
mov ecx, dword [esp + 0x74]
xorps xmm0, xmm0
mov esi, dword [esp + 0x74]
mov eax, dword [edi + 0x70]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x74]
mov dword [esp + 0xbc], ecx
mov ecx, dword [esp + 0x74]
movsd qword [esp + 0xe8], xmm0
mov dword [esp + 0x4c], esi
mov dword [esp + 0x7c], ecx
push 4
pop edx
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x1e], 0
jne 0x416fe3
imul ebx, eax, 0x14
mov eax, ecx
mov eax, dword [eax + 0xb8]
add ebx, dword [edi + 0x14]
mov dword [esp + 0x5c], ebx
test eax, eax
je 0x413a33
mov edx, dword [esp + 0x94]
cmp dword [ecx + 0xc0], edx
jne 0x413a21
push dword [ecx + 0xbc]
call eax
pop ecx
test eax, eax
jne 0x416e4f
jmp 0x413a28
mov eax, dword [esp + 0x94]
inc eax
push 4
mov dword [esp + 0x98], eax
pop edx
movzx eax, byte [ebx]
push 2
pop ecx
mov al, byte [eax + 0x46f0d8]
test cl, al
je 0x413a62
imul eax, dword [ebx + 8], 0x48
add eax, dword [edi + 0x4c]
mov ecx, eax
mov dword [esp + 0x18], eax
call fcn.0041015a
mov ecx, dword [esp + 0x18]
xor eax, eax
inc eax
mov word [ecx + 0x1c], ax
jmp 0x413ace
mov cl, al
and cl, 8
test dl, al
je 0x413aaa
imul esi, dword [ebx + 4], 0x48
mov edx, dword [edi + 0x4c]
add esi, edx
mov dword [esp + 0x24], esi
test cl, cl
je 0x413a96
imul ecx, dword [ebx + 8], 0x48
add ecx, edx
mov dword [esp + 0x4c], ecx
test al, 0x20
je 0x413aca
imul ecx, dword [ebx + 0xc], 0x48
add ecx, edx
mov dword [esp + 0x18], ecx
jmp 0x413ace
mov ecx, dword [esp + 0x18]
test al, 0x10
je 0x413ace
imul eax, dword [ebx + 0xc], 0x48
add eax, edx
mov dword [esp + 0x40], eax
jmp 0x413ace
test cl, cl
je 0x413abb
imul eax, dword [ebx + 8], 0x48
add eax, dword [edi + 0x4c]
mov dword [esp + 0x4c], eax
jmp 0x413aca
test al, 0x10
je 0x413aca
imul eax, dword [ebx + 0xc], 0x48
add eax, dword [edi + 0x4c]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x18]
mov dl, byte [ebx]
movzx esi, dl
mov byte [esp + 0x2f], dl
lea eax, [esi - 1]
cmp eax, 0x8d
ja case.0x413ae8.11
movzx eax, byte [eax + 0x41717c]
jmp dword [eax*4 + 0x416fec]
mov eax, dword [esp + 0x14]
xor edx, edx
cmp dword [eax + 0xa8], edx
jne 0x416fd7
mov ecx, dword [ebx + 8]
dec ecx
mov eax, dword [esp + 0xc]
jmp 0x413b52
mov eax, dword [edi + 0xe8]
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [edi + eax*4 + 0x84], ecx
inc dword [edi + 0xe8]
jmp 0x413b01
dec dword [edi + 0xe8]
mov eax, dword [edi + 0xe8]
mov ecx, dword [edi + eax*4 + 0x84]
jmp 0x413b04
push 4
pop eax
mov word [ecx + 0x1c], ax
mov eax, dword [ebx + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
push 4
pop edx
inc ecx
mov dword [esp + 0x10], ecx
test eax, eax
jne 0x413d98
mov eax, ecx
jmp 0x4139db
mov esi, dword [esp + 0x18]
push 4
pop edx
mov word [ecx + 0x1c], dx
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esi], ecx
mov dword [esi + 4], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
jmp 0x413b55
push 8
pop eax
mov word [ecx + 0x1c], ax
mov eax, dword [ebx + 0x10]
movsd xmm0, qword [eax]
movsd qword [ecx + 8], xmm0
jmp case.0x413ae8.11
mov edx, dword [ebx + 0x10]
mov ecx, edx
mov byte [ebx], 0x1a
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413bab
xor eax, eax
sub ecx, esi
inc eax
mov dword [ebx + 4], ecx
cmp byte [esp + 0x58], al
je 0x413cb2
mov ecx, dword [esp + 0x18]
push 0
push eax
push 0xffffffffffffffff
call fcn.00410459
movzx edx, byte [esp + 0x64]
add esp, 0xc
mov ecx, dword [esp + 0x18]
call fcn.0040fec9
test eax, eax
jne 0x413d8b
mov ecx, dword [esp + 0x18]
mov eax, 0x800
test word [ecx + 0x1c], ax
je 0x413c03
call fcn.0040fee3
mov ecx, dword [esp + 0x18]
mov eax, 0x380
test word [ecx + 0x1c], ax
je 0x413c63
mov eax, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x20], eax
lea edx, [eax + 2]
call fcn.0040406d
mov esi, eax
test esi, esi
je 0x413d8b
mov eax, dword [esp + 0x18]
push 0x60
pop ecx
push dword [esp + 0x20]
or word [eax + 0x1c], cx
push dword [eax + 0x14]
and dword [eax + 0x20], 0
push esi
call fcn.0044fac0
mov ecx, dword [esp + 0x2c]
xor eax, eax
add esp, 0xc
mov word [esi + ecx], ax
mov eax, 0xfc7f
mov ecx, dword [esp + 0x18]
and word [ecx + 0x1c], ax
mov dword [ecx + 0x14], esi
mov ax, word [ecx + 0x1c]
lea esi, [ecx + 0x18]
mov edx, 0xffbf
and ax, dx
mov edx, 0x80
or ax, dx
mov word [ecx + 0x1c], ax
cmp byte [ebx + 1], 0xff
jne 0x413c91
push dword [ebx + 0x10]
call fcn.00403dd6
pop ecx
mov ecx, dword [esp + 0x18]
mov byte [ebx + 1], 0xff
mov eax, dword [ecx + 0x14]
mov dword [ebx + 0x10], eax
mov eax, dword [esi]
mov dword [ebx + 4], eax
cmp eax, 0x3b9aca00
jle case.0x413ae8.11
push 0x12
jmp 0x413d97
cmp ecx, 0x3b9aca00
jg 0x413cab
mov ecx, dword [esp + 0x18]
mov eax, 0xa2
mov word [ecx + 0x1c], ax
mov eax, dword [ebx + 0x10]
mov dword [ecx + 0x14], eax
mov eax, dword [ebx + 4]
mov dword [ecx + 0x18], eax
mov al, byte [esp + 0x58]
mov byte [ecx + 0x1f], al
jmp case.0x413ae8.11
mov edx, dword [ebx + 0x10]
xor eax, eax
push eax
push eax
push dword [ebx + 4]
call fcn.00410459
mov esi, dword [esp + 0x24]
add esp, 0xc
mov al, byte [esp + 0x58]
mov byte [esi + 0x1f], al
jmp case.0x413ae8.11
imul ecx, dword [ebx + 4], 0x48
mov eax, dword [edi + 0x38]
add eax, 0xffffffb8
add ecx, eax
call fcn.004103bf
test eax, eax
jne 0x413cab
mov eax, 0x80
mov edx, ecx
mov ecx, dword [esp + 0x18]
push eax
call fcn.004103e2
pop ecx
jmp case.0x413ae8.11
imul eax, dword [ebx + 4], 0x48
imul esi, dword [ebx + 8], 0x48
add eax, dword [edi + 0x4c]
add esi, dword [edi + 0x4c]
cmp dl, 0x71
mov dword [esp + 0x24], eax
mov edx, eax
mov dword [esp + 0x18], esi
jne 0x413d56
mov ecx, esi
call fcn.00410415
jmp case.0x413ae8.11
mov ecx, 0x100
push ecx
mov ecx, esi
call fcn.004103e2
cmp byte [ebx], 0x12
pop ecx
jne case.0x413ae8.11
mov eax, 0x100
test word [esi + 0x1c], ax
je case.0x413ae8.11
mov ecx, esi
call fcn.0040ff5f
test eax, eax
je case.0x413ae8.11
xor eax, eax
inc eax
mov ecx, dword [esp + 0x14]
mov byte [ecx + 0x1e], al
push 7
pop eax
xor ebx, ebx
mov dword [edi + 0x74], eax
mov ecx, edi
inc ebx
call fcn.00411c01
mov ecx, dword [esp + 0x74]
call fcn.0040a025
mov ecx, dword [esp + 0x2e4]
mov eax, ebx
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0044c4ac
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x4c]
movzx ecx, word [ebx + 0x1c]
mov al, byte [eax + 0x1c]
or al, cl
test al, 1
je 0x413df7
mov esi, dword [esp + 0x18]
test byte [esi + 0x1c], 0x40
je 0x413deb
mov ecx, esi
call fcn.0041015a
xor eax, eax
inc eax
mov word [esi + 0x1c], ax
jmp case.0x413ae8.11
bt ecx, 0xb
jae 0x413e04
mov ecx, ebx
call fcn.0040fee3
test byte [ebx + 0x1c], 0x12
movzx esi, byte [esp + 0x58]
jne 0x413e20
mov edx, esi
mov ecx, ebx
call fcn.0041005d
test eax, eax
jne 0x413d8b
mov eax, dword [esp + 0x4c]
mov edx, 0x800
test word [eax + 0x1c], dx
je 0x413e3a
mov ecx, eax
call fcn.0040fee3
mov eax, dword [esp + 0x4c]
test byte [eax + 0x1c], 0x12
jne 0x413e55
mov edx, esi
mov ecx, eax
call fcn.0041005d
test eax, eax
jne 0x413d8b
mov eax, dword [esp + 0x4c]
mov ebx, dword [ebx + 0x18]
add ebx, dword [eax + 0x18]
cmp ebx, 0x3b9aca00
jg 0x413cab
mov ecx, dword [esp + 0x14]
lea edx, [ebx + 2]
call fcn.0040406d
mov esi, eax
test esi, esi
je 0x413d8b
mov eax, dword [esp + 0x4c]
push dword [eax + 0x18]
push dword [eax + 0x14]
push esi
call fcn.0044fac0
mov eax, dword [esp + 0x30]
add esp, 0xc
push dword [eax + 0x18]
push dword [eax + 0x14]
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 0x18]
add eax, esi
push eax
call fcn.0044fac0
mov ecx, dword [esp + 0x24]
xor edx, edx
add esp, 0xc
mov word [ebx + esi], dx
test byte [ecx + 0x1c], 0x40
je 0x413ec7
call fcn.0041015a
mov ecx, dword [esp + 0x18]
xor edx, edx
push 0x62
pop eax
mov word [ecx + 0x1c], ax
mov al, byte [esp + 0x58]
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x20], edx
mov byte [ecx + 0x1f], al
mov dword [ecx + 0x14], esi
jmp case.0x413ae8.11
mov eax, dword [esp + 0x4c]
movzx edx, word [eax + 0x1c]
mov eax, dword [esp + 0x24]
movzx ecx, word [eax + 0x1c]
mov eax, ecx
mov dword [esp + 0x28], eax
mov eax, edx
or dword [esp + 0x28], eax
test byte [esp + 0x28], 1
jne 0x4140d0
push 4
and cl, dl
pop eax
test al, cl
je 0x413fd7
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x4c]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x3c], eax
sub esi, 0x4e
je 0x413fb0
sub esi, 1
je 0x413faa
sub esi, 1
je 0x413f9b
mov eax, ecx
sub esi, 1
je 0x413f68
or eax, edx
je 0x4140d0
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x413f59
xor ecx, ecx
inc ecx
xor edx, edx
mov esi, dword [esp + 0x3c]
push edx
push ecx
push esi
push ebx
call fcn.00460bf0
jmp 0x413fa4
or eax, edx
je 0x4140d0
mov esi, dword [esp + 0x3c]
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x413f90
xor eax, eax
cmp ebx, eax
jne 0x413f90
cmp esi, 0x80000000
jne 0x413f90
xor ecx, ecx
mov edx, eax
inc ecx
push edx
push ecx
push esi
push ebx
call fcn.00460a60
jmp 0x413fa4
push edx
push ecx
push eax
push ebx
call fcn.00460a20
mov ebx, eax
mov esi, edx
jmp 0x413fba
sub ebx, ecx
sbb eax, edx
jmp 0x413fb4
add ebx, ecx
adc eax, edx
mov dword [esp + 0x3c], eax
mov esi, eax
mov ecx, dword [esp + 0x18]
test byte [ecx + 0x1c], 0x40
je 0x413fcd
call fcn.0041015a
mov ecx, dword [esp + 0x18]
mov dword [ecx], ebx
mov dword [ecx + 4], esi
jmp 0x4142b4
mov ecx, dword [esp + 0x24]
call fcn.00410238
mov ecx, dword [esp + 0x4c]
movsd qword [esp + 0x50], xmm0
call fcn.00410238
movzx eax, byte [ebx]
movsd qword [esp + 0x30], xmm0
sub eax, 0x4e
je 0x414081
sub eax, 1
je 0x414079
sub eax, 1
je 0x414071
sub eax, 1
je 0x414056
movsd xmm0, qword [esp + 0x50]
call fcn.00462870
movsd xmm0, qword [esp + 0x30]
mov esi, eax
mov ebx, edx
call fcn.00462870
mov ecx, eax
mov eax, esi
or eax, ebx
je 0x4140d0
mov eax, esi
and eax, ebx
cmp eax, 0xffffffff
jne 0x414044
xor esi, esi
inc esi
xor ebx, ebx
push ebx
push esi
push edx
push ecx
call fcn.00460bf0
mov ecx, eax
call fcn.00462920
jmp 0x414087
movsd xmm1, qword [esp + 0x50]
ucomisd xmm1, qword [esp + 0xe8]
lahf
test ah, 0x44
jnp 0x4140d0
divsd xmm0, xmm1
jmp 0x414087
mulsd xmm0, qword [esp + 0x50]
jmp 0x414087
subsd xmm0, qword [esp + 0x50]
jmp 0x414087
addsd xmm0, qword [esp + 0x50]
ucomisd xmm0, xmm0
movsd qword [esp + 0x30], xmm0
lahf
test ah, 0x44
jp 0x4140d0
mov esi, dword [esp + 0x18]
test byte [esi + 0x1c], 0x40
je 0x4140ae
mov ecx, esi
call fcn.0041015a
movsd xmm0, qword [esp + 0x30]
push 8
pop ebx
movsd qword [esi + 8], xmm0
mov word [esi + 0x1c], bx
test byte [esp + 0x28], bl
jne case.0x413ae8.11
mov ecx, esi
call fcn.004102aa
jmp case.0x413ae8.11
mov ecx, dword [esp + 0x18]
call fcn.00410317
jmp case.0x413ae8.11
imul ecx, dword [ebx + 8], 0x48
mov eax, dword [edi + 0x24]
movzx esi, byte [ebx + 3]
mov dword [esp + 0x20], eax
xor eax, eax
mov edx, eax
add ecx, dword [edi + 0x4c]
test esi, esi
je 0x414118
mov edi, dword [esp + 0x20]
push 0x48
pop ebx
mov dword [edi + edx*4], ecx
call fcn.004137b0
inc edx
add ecx, ebx
cmp edx, esi
jl 0x4140ff
mov ebx, dword [esp + 0x5c]
xor eax, eax
mov edi, dword [esp + 0x38]
cmp byte [ebx + 1], 0xfb
mov ecx, dword [ebx + 0x10]
jne 0x41412a
mov dword [esp + 0x18c], eax
jmp 0x414133
mov dword [esp + 0x18c], ecx
mov ecx, dword [ecx]
xor edx, edx
mov dword [esp + 0x188], ecx
inc edx
mov dword [esp + 0x1a4], eax
mov word [esp + 0x1ac], dx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1a0], edx
mov dword [esp + 0x1dc], eax
cmp byte [ecx + 3], 0
je 0x414175
mov eax, dword [ebx - 4]
mov dword [esp + 0x1e0], eax
push dword [esp + 0x20]
lea eax, [esp + 0x18c]
push esi
push eax
call dword [ecx + 0x10]
mov eax, dword [esp + 0x20]
add esp, 0xc
cmp byte [eax + 0x1e], 0
jne 0x416e56
mov ecx, dword [esp + 0x18c]
test ecx, ecx
je 0x4141b7
mov edx, dword [ebx + 4]
call fcn.00411f86
mov eax, dword [esp + 0x18c]
mov dword [ebx + 0x10], eax
mov byte [ebx + 1], 0xf9
cmp dword [esp + 0x1dc], 0
je 0x4141ee
push 0
push ecx
mov dl, 1
lea ecx, [esp + 0x198]
call fcn.004107ed
pop ecx
push eax
lea eax, [edi + 0xf4]
push eax
call fcn.00404183
mov eax, dword [esp + 0x1e8]
add esp, 0xc
mov dword [esp + 0xc], eax
movzx edx, byte [esp + 0x58]
lea ecx, [esp + 0x190]
call fcn.0040fec9
imul esi, dword [ebx + 0xc], 0x48
lea edx, [esp + 0x190]
add esi, dword [edi + 0x4c]
mov ecx, esi
mov dword [esp + 0x18], esi
call fcn.00410415
mov ecx, esi
call fcn.004103bf
test eax, eax
jne 0x413cab
jmp case.0x413ae8.11
mov esi, dword [esp + 0x4c]
mov edx, dword [esp + 0x24]
mov al, byte [esi + 0x1c]
or al, byte [edx + 0x1c]
test al, 1
jne 0x4140d4
mov ecx, esi
call fcn.004101d0
mov ecx, dword [esp + 0x24]
mov esi, eax
mov dword [esp + 0x28], edx
call fcn.004101d0
movzx ecx, byte [ebx]
mov dword [esp + 0x20], eax
sub ecx, 0x4a
je 0x414294
sub ecx, 1
je 0x41428a
mov edx, dword [esp + 0x28]
sub ecx, 1
mov ecx, dword [esp + 0x20]
mov eax, esi
je 0x41427f
call fcn.00462840
jmp 0x414284
call fcn.00460cb0
mov esi, eax
mov ebx, edx
jmp 0x41429c
mov ebx, dword [esp + 0x28]
or esi, eax
or ebx, edx
jmp 0x41429c
mov ebx, dword [esp + 0x28]
and esi, eax
and ebx, edx
mov ecx, dword [esp + 0x18]
test byte [ecx + 0x1c], 0x40
je 0x4142af
call fcn.0041015a
mov ecx, dword [esp + 0x18]
mov dword [ecx], esi
mov dword [ecx + 4], ebx
push 4
pop edx
mov word [ecx + 0x1c], dx
jmp 0x413b81
mov esi, dword [esp + 0x24]
mov ecx, esi
call fcn.004102d9
mov eax, dword [ebx + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp case.0x413ae8.11
mov esi, dword [esp + 0x24]
mov ecx, esi
call fcn.00413813
push 8
pop eax
test byte [esi + 0x1c], al
je 0x4142f3
mov ecx, esi
call fcn.004102aa
movzx eax, word [esi + 0x1c]
push 4
test al, 0xc
jne 0x41430a
mov ecx, dword [ebx + 8]
mov eax, dword [esp + 0x10]
dec ecx
jmp 0x413b54
pop ecx
test cl, al
je 0x414339
xor eax, eax
cmp dword [ebx + 0xc], eax
je 0x41431d
xor esi, esi
mov edi, eax
inc esi
jmp 0x41432e
xorps xmm0, xmm0
movlpd qword [esp + 0x30], xmm0
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x24]
add esi, dword [ebx]
adc edi, dword [ebx + 4]
jmp 0x414396
movsd xmm0, qword [esi + 8]
call fcn.00462870
mov esi, eax
mov edi, edx
mov ecx, esi
call fcn.00462920
mov eax, dword [esp + 0x24]
movsd xmm1, qword [eax + 8]
comisd xmm1, xmm0
jbe 0x414367
push 0
add esi, 1
pop eax
adc edi, eax
jmp 0x414369
xor eax, eax
cmp dword [ebx + 0xc], eax
je 0x414392
mov edx, edi
mov ecx, esi
call fcn.00462920
mov ebx, dword [esp + 0x24]
movsd xmm1, qword [ebx + 8]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x414396
add esi, 1
adc edi, 0
jmp 0x414396
mov ebx, dword [esp + 0x24]
movzx eax, word [ebx + 0x1c]
test al, 0x40
je 0x4143a5
mov ecx, ebx
call fcn.0041015a
push 4
pop edx
mov dword [ebx], esi
mov dword [ebx + 4], edi
mov word [ebx + 0x1c], dx
mov edi, dword [esp + 0x38]
jmp 0x413b81
mov esi, dword [esp + 0x24]
mov ecx, esi
call fcn.00413813
push 8
pop eax
test byte [esi + 0x1c], al
je 0x4143d4
mov ecx, esi
call fcn.004102aa
movzx eax, word [esi + 0x1c]
push 4
pop edx
test dl, al
jne 0x4143f1
mov eax, dword [ebx + 8]
test eax, eax
jne 0x415e21
push 0x14
jmp 0x41524f
test al, 0x40
je 0x4143ff
mov ecx, esi
call fcn.0041015a
push 4
pop edx
mov word [esi + 0x1c], dx
jmp 0x413b81
mov esi, dword [esp + 0x24]
push 4
pop edx
test byte [esi + 0x1c], dl
je 0x413b81
mov ecx, esi
call fcn.004102f8
jmp case.0x413ae8.11
mov esi, dword [esp + 0x24]
movzx ecx, word [esi + 0x1c]
test cl, 1
jne case.0x413ae8.11
push dword [esp + 0x58]
mov eax, ecx
mov dl, 0x61
shr eax, 3
and eax, 2
or eax, ecx
mov ecx, esi
mov word [esi + 0x1c], ax
call fcn.00413886
mov eax, 0x800
pop ecx
test word [esi + 0x1c], ax
je 0x414469
mov ecx, esi
call fcn.0040fee3
mov dword [esp + 0xc], eax
jmp 0x41446e
and dword [esp + 0xc], 0
mov eax, 0xffe3
and word [esi + 0x1c], ax
jmp case.0x413ae8.11
mov esi, dword [esp + 0x24]
movzx ecx, word [esi + 0x1c]
test cl, 1
jne case.0x413ae8.11
mov eax, ecx
test cl, 0x10
jne 0x4144af
push dword [esp + 0x58]
mov dl, 0x61
mov ecx, esi
call fcn.00413886
mov ax, word [esi + 0x1c]
pop ecx
push 0x10
pop ecx
or ax, cx
movzx eax, ax
and eax, 0xfff1
jmp 0x413dee
mov esi, dword [esp + 0x24]
test byte [esi + 0x1c], 0xd
jne case.0x413ae8.11
mov ecx, esi
call fcn.00410238
movsd qword [esp + 0x30], xmm0
call fcn.004101ac
mov ecx, eax
call fcn.00462920
movsd xmm1, qword [esp + 0x30]
mov ecx, esi
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x4144fc
call fcn.004102d9
jmp case.0x413ae8.11
push 8
pop eax
movsd qword [esi + 8], xmm1
mov word [esi + 0x1c], ax
call fcn.0041015a
jmp case.0x413ae8.11
mov esi, dword [esp + 0x24]
test byte [esi + 0x1c], 1
jne case.0x413ae8.11
mov ecx, esi
jmp 0x4144f2
mov esi, dword [esp + 0x24]
test byte [esi + 0x1c], 1
jne case.0x413ae8.11
jmp 0x414418
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x24]
mov al, byte [eax + 0x1c]
or al, byte [esi + 0x1c]
test al, 1
je 0x4145b6
mov al, byte [ebx + 3]
test al, 0x10
je 0x414641
push 4
pop eax
mov word [esp + 0x24c], ax
xor ecx, ecx
movzx eax, word [esi + 0x1c]
lea esi, [esp + 0x230]
cdq
not eax
mov dword [esp + 0x234], ecx
and eax, 1
mov dword [esp + 0x24], esi
mov dword [esp + 0x230], eax
push 4
pop eax
mov word [esp + 0x294], ax
mov eax, dword [esp + 0x40]
movzx eax, word [eax + 0x1c]
cdq
not eax
mov dword [esp + 0x27c], ecx
and eax, 1
mov dword [esp + 0x278], eax
lea eax, [esp + 0x278]
mov dword [esp + 0x40], eax
mov al, byte [ebx + 3]
and al, 0x67
mov byte [esp + 0x2f], al
je 0x4145e1
push dword [esp + 0x58]
mov dl, al
mov ecx, esi
call fcn.00413886
mov dl, byte [esp + 0x33]
pop ecx
push dword [esp + 0x58]
mov ecx, dword [esp + 0x44]
call fcn.00413886
pop ecx
mov eax, 0x800
test word [esi + 0x1c], ax
je 0x4145f3
mov ecx, esi
call fcn.0040fee3
mov eax, dword [esp + 0x40]
mov edx, 0x800
test word [eax + 0x1c], dx
je 0x41460d
mov ecx, eax
call fcn.0040fee3
mov eax, dword [esp + 0x40]
push dword [ebx + 0x10]
mov edx, esi
mov ecx, eax
call fcn.0041056f
pop ecx
movzx ecx, byte [ebx]
mov edx, eax
sub ecx, 0x43
je 0x414694
sub ecx, 1
je 0x41468b
sub ecx, 1
je 0x414682
sub ecx, 1
je 0x414679
sub ecx, 1
je 0x414670
xor eax, eax
test edx, edx
setns al
jmp 0x41469b
test al, al
jns 0x414655
imul esi, dword [ebx + 8], 0x48
add esi, dword [edi + 0x4c]
mov dword [esp + 0x18], esi
jmp 0x413dde
push 8
pop ecx
test cl, al
mov eax, dword [esp + 0xc]
push 4
pop edx
je 0x413b85
mov ecx, dword [ebx + 8]
dec ecx
jmp 0x413b55
xor eax, eax
test edx, edx
sets al
jmp 0x41469b
xor eax, eax
test edx, edx
setle al
jmp 0x41469b
xor eax, eax
test edx, edx
setg al
jmp 0x41469b
xor eax, eax
test edx, edx
sete al
jmp 0x41469b
xor eax, eax
test edx, edx
setne al
cmp byte [ebx + 3], 0
mov dword [esp + 0x5c], eax
jge 0x4147d4
imul esi, dword [ebx + 8], 0x48
add esi, dword [edi + 0x4c]
mov dword [esp + 0x18], esi
test byte [esi + 0x1c], 0x40
je 0x4146c1
mov ecx, esi
call fcn.0041015a
mov eax, dword [esp + 0x5c]
and dword [esi + 4], 0
push 4
pop edx
mov word [esi + 0x1c], dx
mov dword [esi], eax
jmp 0x413b81
mov eax, dword [esp + 0x24]
test byte [eax + 0x1c], 1
je 0x4146e5
push 6
jmp 0x4146f2
mov ecx, eax
call fcn.004101d0
or eax, edx
je 0x4146f5
push 3
pop esi
jmp 0x4146f7
xor esi, esi
mov eax, dword [esp + 0x4c]
test byte [eax + 0x1c], 1
je 0x41470d
mov ecx, 0x46ec3e
mov eax, 0x46d4ce
jmp 0x41472e
mov ecx, eax
call fcn.004101d0
or eax, edx
je 0x414724
mov ecx, 0x46ec3d
mov eax, 0x46d4cd
jmp 0x41472e
mov ecx, 0x46ec3c
mov eax, 0x46d4cc
cmp byte [ebx], 0x3d
cmovne eax, ecx
mov bl, byte [eax + esi]
mov esi, dword [esp + 0x18]
test byte [esi + 0x1c], 0x40
je 0x414748
mov ecx, esi
call fcn.0041015a
push 2
pop eax
push 4
cmp bl, al
jne 0x414757
xor eax, eax
inc eax
pop edx
jmp 0x414763
movzx eax, bl
cdq
mov dword [esi + 4], edx
pop edx
mov dword [esi], eax
mov eax, edx
mov word [esi + 0x1c], ax
jmp 0x413b81
mov esi, dword [esp + 0x24]
test byte [esi + 0x1c], 1
jne case.0x413ae8.11
mov ecx, esi
call fcn.004102d9
mov eax, dword [esi]
or eax, dword [esi + 4]
jne 0x41478d
inc eax
xor ecx, ecx
jmp 0x41479e
xorps xmm0, xmm0
movlpd qword [esp + 0x30], xmm0
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp case.0x413ae8.11
mov esi, dword [esp + 0x24]
test byte [esi + 0x1c], 1
jne case.0x413ae8.11
mov ecx, esi
call fcn.004102d9
not dword [esi]
not dword [esi + 4]
jmp case.0x413ae8.11
mov esi, dword [esp + 0x24]
test byte [esi + 0x1c], 1
je 0x4147db
mov eax, dword [ebx + 0xc]
test eax, eax
jmp 0x41465a
mov ecx, esi
call fcn.00410238
ucomisd xmm0, qword [esp + 0xe8]
lahf
test ah, 0x44
jnp 0x4147f6
xor eax, eax
inc eax
jmp 0x4147f8
xor eax, eax
cmp byte [ebx], 0x40
jne 0x4147d4
xor eax, 1
jmp 0x4147d4
mov eax, dword [ebx + 0xc]
xor edx, edx
mov esi, dword [esp + 0x24]
inc edx
push 0x48
pop ecx
test byte [esi + 0x1c], dl
jne 0x413b01
add esi, ecx
dec eax
mov dword [esp + 0x24], esi
test eax, eax
jg 0x41480f
jmp case.0x413ae8.11
mov eax, dword [esp + 0x24]
test byte [eax + 0x1c], 1
mov eax, dword [esp + 0xc]
push 4
pop edx
jne 0x413b85
jmp 0x414667
mov eax, dword [edi + 0x30]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebx + 8]
mov dword [ecx + 0x50], eax
jmp case.0x413ae8.11
mov eax, dword [ebx + 8]
mov esi, dword [ebx + 4]
mov dword [esp + 0x30], eax
xor eax, eax
mov word [esp + 0x204], ax
imul eax, dword [ebx + 0xc], 0x48
add eax, dword [edi + 0x4c]
mov ecx, eax
mov dword [esp + 0x20], eax
call fcn.00410317
mov eax, dword [edi + 0x30]
xor edx, edx
mov esi, dword [eax + esi*4]
cmp dword [esi], edx
je 0x4148fe
mov ecx, esi
call fcn.0041208b
mov dword [esp + 0xc], eax
test eax, eax
jne 0x415250
mov ecx, dword [esi]
xor edx, edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x48], ecx
cmp byte [esi + 0x1c], dl
je 0x4148b2
mov dword [esp + 0x68], edx
jmp 0x4148f1
mov eax, dword [esi + 0x68]
cmp eax, dword [edi + 0x54]
jne 0x4148ca
mov edx, dword [esi + 0x6c]
mov eax, dword [esi + 0x78]
mov dword [esp + 0x68], edx
mov dword [esp + 0x3c], eax
jmp 0x4148f1
cmp byte [esi + 0x21], dl
je 0x4148e8
lea edx, [esp + 0x120]
call fcn.0040bfc0
mov eax, dword [esp + 0x120]
mov dword [esp + 0x68], eax
jmp 0x4148f1
lea edx, [esp + 0x68]
call fcn.0040c008
push 0x68
pop ecx
mov eax, esi
add eax, ecx
mov ecx, dword [esp + 0x68]
jmp 0x414915
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x34]
mov dword [esp + 0x3c], eax
lea eax, [esi + 0x68]
mov dword [esp + 0x68], ecx
mov dword [eax], edx
mov dword [esp + 0x48], edx
mov edx, dword [esi + 0x50]
mov dword [esp + 0x44], eax
mov dword [esp + 0x70], edx
test ecx, ecx
je case.0x413ae8.11
cmp ecx, 0x3b9aca00
ja 0x413cab
mov eax, dword [eax]
mov edx, dword [esi + 0x70]
mov dword [esp + 0x64], edx
cmp eax, dword [edi + 0x54]
jne 0x414951
mov edx, dword [esi + 0x74]
lea eax, [esi + 0x21]
mov dword [esp + 0x44], eax
jmp 0x414b3b
mov dword [esp + 0x64], edx
test edx, edx
jne 0x41497e
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x14]
shl edx, 3
call fcn.0040406d
mov edx, eax
mov dword [esp + 0x64], edx
mov dword [esi + 0x70], edx
test edx, edx
je 0x413d8b
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x70]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esp + 0x44]
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x50], eax
mov dword [esi + 0x74], eax
mov eax, dword [edi + 0x54]
mov dword [ecx], eax
test edx, edx
je 0x4149a8
mov eax, edx
mov dword [esp + 0x28], eax
jmp 0x4149f8
cmp byte [esi + 0x21], 0
mov ecx, dword [esp + 0x48]
mov al, byte [ecx + 0x49]
je 0x4149ce
cmp al, 1
jne 0x4149d6
push 0
lea edx, [esp + 0x94]
call fcn.0040c448
mov edx, dword [esp + 0x40]
pop ecx
jmp 0x4149d8
cmp al, 1
jne 0x4149d6
push 1
jmp 0x4149bb
xor eax, eax
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x28], eax
cmp dword [esp + 0x90], ecx
jb 0x4149f4
mov edx, eax
mov dword [esi + 0x78], eax
mov dword [esp + 0x3c], edx
jmp 0x4149f8
and dword [esi + 0x78], 0
push 0x21
pop ecx
add ecx, esi
movzx esi, byte [eax]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x60], esi
mov dword [esp + 0xc], esi
cmp esi, 0x7f
ja 0x414a1b
mov dword [esp + 0x1c], 1
jmp 0x414a3e
lea edx, [esp + 0xc]
mov ecx, eax
call fcn.00406224
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x60], esi
test edx, edx
jne 0x414a77
cmp dword [esp + 0x90], esi
jae 0x414a77
lea eax, [esp + 0x1e8]
push eax
movzx eax, byte [ecx]
mov ecx, dword [esp + 0x4c]
push eax
push esi
call fcn.0041070c
add esp, 0xc
mov dword [esp + 0xc], eax
test eax, eax
jne 0x413b4e
mov eax, dword [esp + 0x1fc]
lea ecx, [esi + eax]
xor edx, edx
add eax, dword [esp + 0x1c]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0xc], eax
mov dword [esp + 0x1c], edx
test ecx, ecx
je 0x414afe
mov esi, dword [esp + 0x64]
mov edi, eax
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x28]
cmp edi, eax
jae 0x414ada
mov dword [esi + ecx*4], ebx
movzx eax, byte [edi]
mov dword [esi], eax
cmp eax, 0x7f
ja 0x414ab8
xor eax, eax
inc eax
jmp 0x414ac5
mov edx, esi
mov ecx, edi
call fcn.00406224
mov edx, dword [esp + 0x1c]
mov ecx, dword [esi]
add edi, eax
call fcn.004121be
mov ecx, dword [esp + 0x70]
add ebx, eax
mov eax, dword [esp + 0x28]
jmp 0x414ade
and dword [esi + ecx*4], 0
inc edx
add esi, 4
mov dword [esp + 0x1c], edx
cmp edx, ecx
jb 0x414aa2
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0x60]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x38]
test byte [esp + 0x204], 0x40
je 0x414b14
lea ecx, [esp + 0x1e8]
call fcn.0041015a
xor eax, eax
inc eax
mov word [esp + 0x204], ax
mov eax, dword [esp + 0x28]
cmp dword [esp + 0xc], eax
ja 0x414bf8
cmp esi, dword [esp + 0x68]
ja 0x414bf8
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x30]
mov edx, dword [edx + ecx*4]
test edx, edx
je 0x414ba7
mov eax, dword [esp + 0x64]
lea esi, [eax + ecx*4]
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x414b5a
lea ecx, [edx + eax]
jmp 0x414b91
mov ecx, dword [esi]
call fcn.004121be
lea ecx, [esp + 0x1e8]
push ecx
mov ecx, dword [esp + 0x48]
movzx ecx, byte [ecx]
push ecx
mov ecx, dword [esp + 0x50]
push eax
call fcn.0041070c
add esp, 0xc
mov dword [esp + 0xc], eax
test eax, eax
jne 0x413b4e
mov ecx, dword [esp + 0x1fc]
mov ebx, dword [esp + 0x20]
mov edx, dword [esi]
push ebx
call fcn.00412270
mov al, byte [esp + 0x5c]
pop ecx
mov byte [ebx + 0x1f], al
jmp 0x414bc8
cmp byte [ebx + 1], 0xf8
jne 0x414bc4
mov edx, dword [ebx + 0x10]
mov eax, 0x80
mov ebx, dword [esp + 0x20]
mov ecx, ebx
push eax
call fcn.004103e2
pop ecx
jmp 0x414bc8
mov ebx, dword [esp + 0x20]
test byte [esp + 0x204], 0x40
je 0x414be8
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.0040ff5f
mov dword [esp + 0xc], eax
jmp 0x413b4e
push 0xb
pop eax
jmp 0x414bef
imul ecx, dword [ebx + 4], 0x48
xor eax, eax
movzx esi, byte [edi + 0x100]
xorps xmm0, xmm0
mov edx, dword [ebx + 0x10]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x28], eax
imul eax, dword [ebx + 8], 0x48
add ecx, dword [edi + 0x4c]
movlpd qword [esp + 0x30], xmm0
mov dword [esp + 0x20], esi
mov esi, ecx
mov dword [esp + 0x1c], edx
add eax, 0xffffffb8
mov dword [esp + 0x18], ecx
add eax, ecx
mov dword [esp + 0x60], eax
cmp ecx, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x48], eax
ja 0x414d03
xor ebx, ebx
mov edi, ecx
mov eax, esi
test edx, edx
je 0x414c7b
push dword [esp + 0x58]
sub eax, edi
push 0x48
pop ecx
cdq
idiv ecx
mov ecx, dword [esp + 0x20]
mov dl, byte [eax + ecx]
mov ecx, esi
call fcn.00413886
pop ecx
mov eax, esi
mov ecx, 0x800
test word [eax + 0x1c], cx
je 0x414c92
cmp dword [eax + 0x18], ebx
jle 0x414c92
mov ecx, esi
call fcn.0040fee3
mov edx, dword [esp + 0x20]
mov ecx, esi
call fcn.004120f9
mov ecx, eax
call fcn.004121be
mov dword [esp + 0x30], eax
cdq
add dword [esp + 0x48], eax
push ebx
adc dword [esp + 0x68], edx
push ecx
call fcn.0040627a
pop ecx
pop ecx
mov ecx, dword [esp + 0x3c]
mov edx, 0x800
add ecx, eax
mov eax, esi
mov dword [esp + 0x3c], ecx
test word [eax + 0x1c], dx
mov eax, dword [esp + 0x28]
je 0x414cd9
add eax, dword [esi]
jmp 0x414ce2
xor edx, edx
cmp dword [esp + 0x30], edx
cmovne eax, edx
mov edx, dword [esp + 0x1c]
push 0x48
mov dword [esp + 0x2c], eax
pop eax
add esi, eax
cmp esi, dword [esp + 0x60]
jbe 0x414c58
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x38]
jmp 0x414d07
mov ecx, dword [esp + 0x3c]
mov eax, ecx
cdq
push edx
push eax
call fcn.0040627a
mov ecx, dword [esp + 0x44]
mov esi, eax
mov eax, dword [esp + 0x30]
add ecx, esi
cdq
mov dword [esp + 0x24], eax
mov eax, ecx
mov dword [esp + 0x78], edx
cdq
push edx
push eax
mov dword [esp + 0x4c], ecx
call fcn.0040627a
mov edx, dword [esp + 0x4c]
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 + 0x30], eax
sub ecx, dword [esp + 0x1c]
sbb edx, dword [esp + 0x70]
add ecx, dword [esp + 0x48]
mov dword [esp + 0x3c], ecx
adc edx, dword [esp + 0x64]
xor eax, eax
mov dword [esp + 0x50], edx
cmp edx, eax
ja 0x413cab
jb 0x414d84
cmp ecx, 0x3b9aca00
ja 0x413cab
cmp edx, eax
ja 0x414d9a
cmp ecx, 0x20
ja 0x414d9a
lea eax, [esp + 0x2c4]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], eax
jmp 0x414db7
mov eax, ecx
mov ecx, dword [esp + 0x14]
mov edx, eax
mov dword [esp + 0x44], eax
call fcn.0040406d
mov dword [esp + 0x48], eax
test eax, eax
je 0x413d8b
push dword [esp + 0x30]
mov ecx, eax
push esi
call fcn.004060d3
mov esi, eax
mov eax, dword [esp + 0x20]
pop ecx
pop ecx
mov dword [esp + 0x30], eax
cmp eax, dword [esp + 0x60]
ja 0x414e3c
mov edi, eax
mov edx, dword [esp + 0x20]
mov ecx, edi
call fcn.004120f9
mov ecx, dword [esp + 0x48]
push 0
push eax
lea ecx, [esi + ecx]
call fcn.004060d3
pop ecx
pop ecx
add esi, eax
push 0x48
pop eax
add edi, eax
cmp edi, dword [esp + 0x60]
jbe 0x414dd7
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x18]
push dword [esp + 0x20]
mov edx, edi
lea ecx, [esi + ebx]
push eax
sub edx, esi
call fcn.004121d1
pop ecx
pop ecx
add esi, eax
mov eax, dword [esp + 0x18]
push 0x48
pop ecx
add eax, ecx
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x60]
jbe 0x414e0c
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x38]
imul esi, dword [ebx + 0xc], 0x48
add esi, dword [edi + 0x4c]
mov dword [esp + 0x18], esi
test byte [esi + 0x1c], 0x40
je 0x414e54
mov ecx, esi
call fcn.0041015a
mov ecx, dword [esp + 0x44]
xor edx, edx
mov dword [esi + 0x18], ecx
cmp dword [esp + 0x50], edx
ja 0x414e8b
jb 0x414e6c
cmp dword [esp + 0x3c], 0x20
ja 0x414e8b
push ecx
lea ecx, [esp + 0x2c8]
lea eax, [esi + 0x24]
push ecx
push eax
mov dword [esi + 0x14], eax
call fcn.0044fac0
add esp, 0xc
mov ecx, 0x210
jmp 0x414e98
mov eax, dword [esp + 0x48]
push 0x50
mov dword [esi + 0x14], eax
mov dword [esi + 0x20], edx
pop ecx
mov word [esi + 0x1c], cx
cmp dword [esp + 0x28], 0
movzx eax, cx
je 0x414ebe
mov ecx, dword [esp + 0x1c]
mov dword [esi], ecx
mov ecx, dword [esp + 0x70]
mov dword [esi + 4], ecx
mov ecx, 0x800
or eax, ecx
mov word [esi + 0x1c], ax
mov byte [esi + 0x1f], 1
jmp case.0x413ae8.11
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x1c], 0
je 0x414edb
cmp dword [eax + 0x60], 1
jle case.0x413ae8.11
imul ecx, dword [ebx + 4], 0x18
mov eax, dword [eax + 8]
mov ebx, dword [ecx + eax + 4]
mov esi, dword [ebx + 4]
test esi, esi
je 0x414ef7
cmp byte [esi + 0x10], 0
jne case.0x413ae8.11
mov ecx, ebx
call fcn.00409e69
mov eax, dword [ebx]
mov dword [esi + 4], eax
push 2
pop eax
cmp byte [ebx + 8], al
jne 0x414f2f
cmp byte [esi + 0x10], 0
jne 0x414f2f
cmp byte [esi + 0x11], 0
je 0x414f1e
and dword [esp + 0xc], 0
jmp 0x414f29
mov ecx, dword [esi]
call fcn.00409b9c
mov dword [esp + 0xc], eax
mov byte [esi + 0x10], 1
jmp 0x414f40
xor eax, eax
inc eax
cmp byte [esi + 0x11], 0
push 8
pop ecx
cmovne eax, ecx
mov dword [esp + 0xc], eax
mov ecx, ebx
call fcn.00409ecc
mov dword [edi + 0x14c], 1
jmp case.0x413ae8.11
imul ecx, dword [ebx + 4], 0x18
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
mov ecx, dword [ecx + eax + 4]
test ecx, ecx
je case.0x413ae8.11
mov edx, dword [ebx + 8]
call fcn.0040b489
push 5
pop edx
mov dword [esp + 0xc], eax
cmp eax, edx
je 0x416e67
test eax, eax
je 0x413b4e
push 8
pop ecx
cmp eax, ecx
jne 0x415250
jmp 0x413d98
mov ecx, dword [ebx + 4]
lea eax, [esp + 0xc8]
mov edx, dword [ebx + 0xc]
neg edx
test ecx, ecx
push eax
cmovns edx, dword [ebx + 0xc]
mov eax, ecx
inc edx
not eax
test ecx, ecx
cmovns eax, ecx
mov ecx, dword [esp + 0x18]
imul eax, eax, 0x18
mov ecx, dword [ecx + 8]
mov ecx, dword [eax + ecx + 4]
call fcn.0040f3c6
pop ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc8]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x4142b4
imul esi, dword [ebx + 4], 0x18
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
add esi, dword [eax + 8]
call fcn.004102d9
mov eax, dword [esp + 0x40]
mov edx, dword [ebx + 8]
mov ecx, dword [esi + 4]
inc edx
push dword [eax]
call fcn.0040f449
xor edx, edx
mov dword [esp + 0x10], eax
pop ecx
cmp dword [ebx + 8], edx
jne 0x415038
mov ecx, dword [esi + 0x14]
mov eax, dword [esp + 0x40]
push 0x10
mov eax, dword [eax]
mov dword [ecx], eax
mov ecx, dword [esp + 0x18]
pop eax
or dword [ecx + 0xc], eax
inc edx
mov eax, dword [esp + 0xc]
jmp 0x415052
inc edx
cmp dword [ebx + 8], edx
jne 0x41504e
mov eax, dword [esp + 0x40]
mov ecx, dword [esi + 0x14]
mov al, byte [eax]
mov byte [ecx + 0x58], al
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
cmp dword [ebx + 4], edx
jne 0x413b4e
call fcn.0041285a
jmp case.0x413ae8.11
imul ecx, dword [ebx + 4], 0x18
xor edx, edx
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
mov ecx, dword [ecx + eax + 4]
test ecx, ecx
je 0x41509e
lea eax, [esp + 0xb4]
inc edx
push eax
call fcn.0040f3c6
mov dword [esp + 0x10], eax
pop ecx
test eax, eax
jne 0x413b4e
mov esi, dword [esp + 0xb4]
jmp 0x4150ad
mov esi, edx
mov dword [esp + 0xc], edx
mov eax, edx
mov dword [esp + 0xb4], esi
cmp esi, dword [ebx + 8]
je 0x413b4e
push dword [edi + 0xf4]
call fcn.00403dd6
pop ecx
mov ecx, dword [esp + 0x14]
mov edx, str.database_schema_has_changed
call fcn.00404144
mov dword [edi + 0xf4], eax
mov edx, dword [ebx + 4]
mov ebx, dword [esp + 0x14]
imul ecx, edx, 0x18
mov eax, dword [ebx + 8]
mov eax, dword [ecx + eax + 0x14]
cmp dword [eax], esi
je 0x4150f2
mov ecx, ebx
call fcn.0041c2d9
mov ecx, ebx
call fcn.0041285a
push 0x11
jmp 0x414bfa
mov eax, dword [ebx + 4]
mov esi, dword [ebx + 0xc]
mov edi, dword [esp + 0x14]
mov ecx, dword [ebx + 8]
mov dword [esp + 0x30], eax
imul eax, esi, 0x18
mov dword [esp + 0x20], ecx
add eax, dword [edi + 8]
mov edi, dword [eax + 4]
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x38]
cmp dl, 8
jne 0x415149
mov eax, dword [eax + 0x14]
mov dword [esp + 0x1c], 1
mov al, byte [eax + 0x58]
cmp al, byte [edi + 0x100]
jae 0x41514e
mov byte [edi + 0x100], al
jmp 0x41514e
and dword [esp + 0x1c], 0
cmp byte [ebx + 3], 0
je 0x41516f
imul eax, ecx, 0x48
add eax, dword [edi + 0x4c]
mov ecx, eax
mov dword [esp + 0x4c], eax
call fcn.004102d9
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx]
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x30]
mov ecx, edi
push esi
call fcn.004137db
mov esi, eax
pop ecx
test esi, esi
je 0x413d8b
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x50]
push esi
mov byte [esi + 0x1c], 1
push dword [ebx + 0x10]
push fcn.00412468
push dword [esp + 0x28]
call fcn.0040bed6
add esp, 0x10
mov dword [esp + 0xc], eax
xor edx, edx
cmp byte [ebx + 1], 0xfa
jne 0x4151cf
mov ecx, dword [ebx + 0x10]
mov dword [esi + 0x4c], ecx
lea eax, [ecx + 5]
mov dword [esi + 0x48], eax
mov eax, dword [edi]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x14]
mov al, byte [eax + 0x59]
mov byte [ecx + 4], al
jmp 0x4151d8
lea eax, [esi + 0x22]
mov dword [esi + 0x4c], edx
mov dword [esi + 0x48], eax
mov eax, dword [esp + 0xc]
test eax, eax
je 0x415205
cmp eax, 5
je 0x416e73
push 0x10
pop ecx
cmp eax, ecx
jne 0x415250
cmp byte [ebx + 1], 0xfa
setne al
mov byte [esi + 0x20], al
sete al
mov byte [esi + 0x21], al
jmp 0x416828
mov ecx, dword [esi]
call fcn.0040f4ba
mov ecx, eax
test cl, 0xf0
jne 0x41524d
and eax, 7
cmp eax, 5
je 0x415220
cmp eax, 2
jne 0x41524d
xor edx, edx
mov al, cl
inc edx
shr ecx, 1
and al, dl
and cl, dl
mov byte [esi + 0x20], al
mov byte [esi + 0x21], cl
test al, al
je 0x41523b
cmp byte [ebx + 1], 0xfa
je 0x41524d
test cl, cl
je case.0x413ae8.11
cmp byte [ebx + 1], 0xfa
je 0x415dbe
push 0xb
pop eax
mov ebx, dword [esp + 0x14]
push 7
pop ecx
push 0
cmp byte [ebx + 0x1e], 0
cmovne eax, ecx
mov dword [esp + 0x10], eax
lea eax, [edi + 0xf4]
push 0x46ba28
push eax
call fcn.00404183
mov eax, dword [esp + 0x18]
add esp, 0xc
jmp 0x413d98
mov edx, dword [ebx + 4]
mov ecx, edi
push 0xffffffffffffffff
call fcn.004137db
mov esi, eax
pop ecx
test esi, esi
je 0x413d8b
lea eax, [esi + 0x30]
xor ecx, ecx
push eax
inc ecx
xor edx, edx
push 0x41e
push 0x1f4
mov byte [esi + 0x1c], cl
push ecx
mov ecx, dword [esp + 0x24]
call fcn.004296f5
add esp, 0x10
mov dword [esp + 0xc], eax
test eax, eax
jne 0x415362
mov ecx, dword [esi + 0x30]
xor edx, edx
inc edx
call fcn.0040b489
mov dword [esp + 0xc], eax
test eax, eax
jne 0x415362
mov ecx, dword [esi + 0x30]
cmp dword [ebx + 0x10], eax
je 0x415343
push 2
pop eax
push eax
lea edx, [esp + 0xd0]
call fcn.0040f043
mov dword [esp + 0x10], eax
pop ecx
test eax, eax
jne 0x41533d
mov edx, dword [esp + 0xcc]
mov ecx, dword [esi + 0x30]
push esi
push dword [ebx + 0x10]
push fcn.00412468
push 1
call fcn.0040bed6
mov ecx, dword [ebx + 0x10]
add esp, 0x10
mov dword [esp + 0xc], eax
mov dword [esi + 0x4c], ecx
mov eax, dword [edi]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x14]
mov al, byte [eax + 0x59]
mov byte [ecx + 4], al
mov eax, dword [esi + 0x4c]
add eax, 5
mov dword [esi + 0x48], eax
mov byte [esi + 0x20], 0
jmp 0x415362
push esi
push eax
push eax
xor eax, eax
inc eax
push eax
mov edx, eax
call fcn.0040bed6
mov dword [esp + 0x1c], eax
add esp, 0x10
lea eax, [esi + 0x22]
mov byte [esi + 0x20], 1
mov dword [esi + 0x48], eax
mov eax, dword [ebx + 8]
cmp byte [esi + 0x20], 0
mov dword [esi + 0x50], eax
sete al
mov byte [esi + 0x21], al
jmp case.0x413ae8.11
mov edx, dword [ebx + 4]
mov ecx, edi
push 0xffffffffffffffff
call fcn.004137db
pop ecx
test eax, eax
je 0x413d8b
xor ecx, ecx
mov word [eax + 0x20], 1
inc ecx
mov byte [eax + 0x1c], cl
mov byte [eax + 0x1e], cl
lea ecx, [eax + 0x22]
mov dword [eax + 0x48], ecx
jmp case.0x413ae8.11
mov esi, dword [ebx + 4]
mov ecx, edi
mov edx, dword [edi + 0x30]
mov edx, dword [edx + esi*4]
call fcn.00411550
mov eax, dword [edi + 0x30]
and dword [eax + esi*4], 0
jmp case.0x413ae8.11
mov ecx, dword [ebx + 4]
xor edx, edx
mov eax, dword [edi + 0x30]
mov esi, dword [eax + ecx*4]
cmp dword [esi], edx
je case.0x413ae8.11
mov al, byte [esp + 0x2f]
mov byte [esi + 0x1c], dl
cmp al, 5
je 0x4153e6
mov cl, dl
cmp al, 0x3f
jne 0x4153e8
mov cl, 1
mov eax, dword [esi + 0x48]
mov byte [eax], cl
mov ecx, dword [esp + 0x40]
cmp byte [esi + 0x20], dl
je 0x415459
call fcn.004101d0
mov ecx, edx
mov dword [esp + 0x30], eax
xor edx, edx
mov dword [esp + 0x50], ecx
cmp dword [ebx + 8], edx
jne 0x41541a
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], ecx
mov byte [esi + 0x19], dl
jmp 0x414ebe
lea edi, [esp + 0x6c]
push edi
push edx
push ecx
mov ecx, dword [esi]
xor edx, edx
push eax
call fcn.0040c6bf
mov edi, dword [esp + 0x48]
add esp, 0x10
mov dword [esp + 0xc], eax
test eax, eax
jne 0x415250
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x6c]
test ecx, ecx
mov dword [esi + 8], eax
mov eax, dword [esp + 0x50]
mov dword [esi + 0xc], eax
sete al
xor edx, edx
jmp 0x41549c
mov eax, 0x800
test word [ecx + 0x1c], ax
je 0x41546f
call fcn.0040fee3
mov ecx, dword [esp + 0x40]
xor edx, edx
lea eax, [esp + 0x6c]
push eax
mov eax, dword [ecx + 0x18]
push edx
cdq
push edx
mov edx, dword [ecx + 0x14]
mov ecx, dword [esi]
push eax
call fcn.0040c6bf
add esp, 0x10
mov dword [esp + 0xc], eax
test eax, eax
jne 0x415250
mov ecx, dword [esp + 0x6c]
xor edx, edx
mov al, dl
mov byte [esi + 0x19], al
mov eax, dword [esi + 0x48]
mov byte [esi + 0x1f], dl
mov dword [esi + 0x68], edx
mov byte [eax], dl
mov al, byte [esp + 0x2f]
cmp al, 0x74
je 0x4154da
cmp al, 5
je 0x4154da
mov eax, dword [esi]
test ecx, ecx
js 0x4154c9
lea edx, [esp + 0x6c]
mov ecx, eax
call fcn.0040ca16
jmp 0x4154e9
mov ecx, dword [esi]
xor eax, eax
cmp byte [ecx + 0x49], 1
setne al
mov dword [esp + 0x6c], eax
jmp 0x4154fe
test ecx, ecx
jns 0x4154fa
mov ecx, dword [esi]
lea edx, [esp + 0x6c]
call fcn.0040c925
mov dword [esp + 0xc], eax
test eax, eax
jne 0x415250
mov byte [esi + 0x19], al
jmp 0x415502
mov dword [esp + 0x6c], edx
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x6c], 0
jmp 0x41465e
mov ecx, dword [ebx + 4]
xor edx, edx
mov eax, dword [edi + 0x30]
mov dword [esp + 0x30], edx
mov esi, dword [eax + ecx*4]
cmp dword [esi], edx
je 0x415588
cmp byte [esp + 0x2f], 0x79
lea ecx, [esi + 0x4c]
mov dword [esp + 0x1c], ecx
jne 0x415535
mov eax, dword [ecx]
mov byte [eax + 6], 1
jmp 0x415539
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x40]
lea eax, [esp + 0xd0]
push eax
push edx
mov eax, dword [ecx + 0x18]
cdq
push edx
mov edx, dword [ecx + 0x14]
mov ecx, dword [esi]
push eax
call fcn.0040c6bf
mov dword [esp + 0x1c], eax
xor edx, edx
mov eax, dword [esp + 0x2c]
add esp, 0x10
mov eax, dword [eax]
mov byte [eax + 6], dl
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x413b4e
xor ecx, ecx
mov byte [esi + 0x1f], dl
cmp dword [esp + 0xd0], ecx
mov dword [esi + 0x68], edx
sete cl
jmp 0x415590
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x30]
cmp byte [ebx], 0x79
je 0x415720
test ecx, ecx
jmp 0x414834
imul eax, dword [ebx + 0x10], 0x48
mov ecx, dword [esp + 0x40]
mov esi, dword [ebx + 4]
add eax, dword [edi + 0x4c]
mov dword [esp + 0x30], eax
call fcn.004102d9
mov edx, dword [esp + 0x40]
mov eax, dword [edx]
mov dword [esp + 0x44], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x48], eax
mov eax, dword [edi + 0x30]
mov eax, dword [eax + esi*4]
mov dword [esp + 0x20], eax
mov eax, dword [eax]
mov dword [esp + 0x50], eax
test eax, eax
je case.0x413ae8.11
mov esi, dword [esp + 0x30]
mov eax, dword [esi + 0x14]
mov ecx, eax
mov dword [esp + 0x1c], eax
call fcn.004126e3
mov ecx, dword [esi + 0x18]
mov edx, dword [esp + 0x20]
sub ecx, eax
mov esi, dword [esp + 0x50]
xor eax, eax
mov dword [esp + 0x30], ecx
mov dword [edx + 0x68], eax
lea edx, [esp + 0x78]
push edx
push eax
mov eax, ecx
mov ecx, esi
cdq
push edx
mov edx, dword [esp + 0x28]
push eax
call fcn.0040c6bf
add esp, 0x10
test eax, eax
jne 0x415250
cmp dword [esp + 0x78], eax
jge 0x41564e
lea edx, [esp + 0x78]
mov ecx, esi
call fcn.0040c925
cmp dword [esp + 0x78], 0
mov dword [esp + 0xc], eax
je 0x41564e
mov ecx, dword [ebx + 8]
dec ecx
jmp 0x413b52
mov edx, dword [esp + 0x30]
lea eax, [esp + 0x78]
mov ecx, dword [esp + 0x20]
push eax
push dword [esp + 0x20]
call fcn.004127c2
mov dword [esp + 0x14], eax
pop ecx
pop ecx
test eax, eax
jne 0x415250
cmp dword [esp + 0x78], eax
jle 0x415680
mov eax, dword [ebx + 8]
jmp 0x4139d4
lea edx, [esp + 0xf0]
mov ecx, esi
call fcn.0041270b
mov dword [esp + 0xc], eax
test eax, eax
jne 0x415250
mov ecx, dword [esp + 0xf0]
mov eax, dword [esp + 0xf4]
cmp ecx, dword [esp + 0x44]
jne 0x4156b4
cmp eax, dword [esp + 0x48]
je 0x415678
mov edx, dword [esp + 0x40]
mov dword [edx], ecx
mov dword [edx + 4], eax
jmp 0x415dbe
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi]
test ecx, ecx
je case.0x413ae8.11
lea eax, [esp + 0xd4]
xor edx, edx
push eax
mov eax, dword [esp + 0x44]
push 0
push dword [eax + 4]
push dword [eax]
call fcn.0040c6bf
mov ecx, dword [esp + 0x50]
add esp, 0x10
mov dword [esp + 0xc], eax
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0xd4]
test ecx, ecx
mov dword [esi + 8], eax
sete al
xor edx, edx
mov byte [esi + 0x19], al
mov eax, dword [esp + 0xc]
mov byte [esi + 0x1c], dl
mov dword [esi + 0x68], edx
test ecx, ecx
jmp 0x41465e
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov esi, dword [esp + 0x18]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax + 0x58]
mov eax, dword [eax + 0x5c]
mov dword [esi], ecx
mov dword [esi + 4], eax
mov eax, dword [edi + 0x30]
mov eax, dword [eax + edx*4]
add dword [eax + 0x58], 1
adc dword [eax + 0x5c], 0
jmp 0x4143fc
mov ecx, dword [ebx + 4]
xorps xmm0, xmm0
mov eax, dword [edi + 0x30]
movlpd qword [esp + 0x50], xmm0
mov esi, dword [eax + ecx*4]
mov dword [esp + 0x28], esi
mov ecx, dword [esi]
test ecx, ecx
je 0x415998
and dword [esp + 0x1c], 0
call fcn.0040f4ba
and al, 3
cmp al, 1
jne 0x41524d
cmp byte [esi + 0x1b], 0
jne 0x415899
cmp byte [esi + 0x1d], 0
je 0x4157a2
mov eax, dword [esp + 0x28]
mov esi, dword [esi + 0x10]
mov edi, dword [eax + 0x14]
jmp 0x4157ff
mov ecx, dword [esi]
lea edx, [esp + 0x80]
call fcn.0040c694
mov dword [esp + 0xc], eax
test eax, eax
jne 0x415250
mov eax, dword [esp + 0x80]
mov dword [esp + 0x84], eax
test eax, eax
je 0x4157d7
xor esi, esi
inc esi
xor edx, edx
mov edi, edx
jmp 0x41580b
mov ecx, dword [esi]
lea edx, [esp + 0x50]
call fcn.0040bfc0
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
cmp esi, 0xffffffff
jne 0x415803
cmp edi, 0x7fffffff
jne 0x415803
mov eax, dword [esp + 0x28]
mov byte [eax + 0x1b], 1
xor edx, edx
jmp 0x41580b
push 0
add esi, 1
pop edx
adc edi, edx
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x41586b
mov edx, dword [esp + 0x38]
imul ebx, eax, 0x48
add ebx, dword [edx + 0x4c]
mov ecx, ebx
mov dword [esp + 0x30], ebx
call fcn.004102d9
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
cmp ecx, 0xffffffff
jne 0x41583c
cmp eax, 0x7fffffff
je 0x416e87
mov ebx, dword [esp + 0x28]
cmp byte [ebx + 0x1b], 0
jne 0x416e87
add ecx, 1
push 0
pop edx
adc eax, edx
cmp edi, eax
jg 0x415860
jl 0x41585c
cmp esi, ecx
jae 0x415860
mov esi, ecx
mov edi, eax
mov eax, dword [esp + 0x30]
mov dword [eax], esi
mov dword [eax + 4], edi
jmp 0x41586f
mov ebx, dword [esp + 0x28]
cmp edi, 0x7fffffff
ja 0x415894
jb 0x41587e
cmp esi, 0xffffffff
jae 0x415894
xor eax, eax
mov ecx, esi
inc eax
add ecx, eax
mov byte [ebx + 0x1d], al
mov eax, edi
mov dword [ebx + 0x10], ecx
adc eax, edx
mov dword [ebx + 0x14], eax
jmp 0x4158a7
mov byte [ebx + 0x1d], dl
jmp 0x4158a7
mov edi, dword [esp + 0x54]
xor edx, edx
mov esi, dword [esp + 0x50]
mov ebx, dword [esp + 0x28]
cmp byte [ebx + 0x1b], 0
je 0x41598b
mov eax, dword [esp + 0x14]
mov ecx, edx
mov dword [esp + 0x20], ecx
mov esi, dword [eax + 0x30]
mov edi, dword [eax + 0x34]
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], edi
test ecx, ecx
jne 0x4158eb
mov eax, esi
and eax, 0xffffff
cmp eax, esi
jne 0x4158eb
cmp edx, edi
jne 0x4158eb
add esi, 1
adc edi, edx
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], edi
jmp 0x415918
push 8
pop eax
lea edx, [esp + 0x50]
mov ecx, eax
call fcn.004053f7
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x50]
cmp ecx, 5
jge 0x415912
and esi, 0xffffff
xor edx, edx
mov edi, edx
jmp 0x4158e1
mov edi, dword [esp + 0x54]
xor edx, edx
mov eax, esi
or eax, edi
je 0x415952
mov ecx, dword [ebx]
lea eax, [esp + 0x80]
push eax
push edx
push edi
push esi
xor edx, edx
call fcn.0040c6bf
mov ecx, dword [esp + 0x30]
add esp, 0x10
mov edx, dword [esp + 0x80]
inc ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x84], edx
jmp 0x41595d
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
cmp ecx, 0x64
jge 0x415970
test eax, eax
jne 0x415970
push eax
test edx, edx
pop edx
je 0x4158c9
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x30], esi
mov dword [ecx + 0x34], edi
test eax, eax
jne 0x41598b
cmp dword [esp + 0x84], eax
je 0x416e87
xor edx, edx
mov byte [ebx + 0x19], dl
mov byte [ebx + 0x1f], dl
mov dword [ebx + 0x68], edx
jmp 0x4159a0
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0x18]
push 4
pop edx
mov word [eax + 0x1c], dx
mov dword [eax], esi
mov dword [eax + 4], edi
jmp 0x4143b1
imul eax, dword [ebx + 0xc], 0x48
mov ecx, dword [ebx + 4]
imul edx, dword [ebx + 8], 0x48
add eax, dword [edi + 0x4c]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x30]
add edx, dword [edi + 0x4c]
test byte [ebx + 3], 1
mov dword [esp + 0x48], edx
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x20], eax
je 0x4159f1
inc dword [edi + 0x104]
push 2
pop eax
test byte [ebx + 3], al
je 0x415a12
mov edi, dword [esp + 0x14]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [edi + 0x28], eax
mov eax, edi
mov edi, dword [esp + 0x38]
mov dword [eax + 0x2c], ecx
mov ecx, dword [esp + 0x1c]
cmp byte [esi + 0x1d], 0
je 0x415a2d
mov eax, dword [ecx + 4]
cmp eax, dword [esi + 0x14]
jl 0x415a2d
jg 0x415a29
mov eax, dword [ecx]
cmp eax, dword [esi + 0x10]
jb 0x415a2d
mov byte [esi + 0x1d], 0
movzx eax, word [edx + 0x1c]
test al, 1
je 0x415a3d
and dword [edx + 0x14], 0
and dword [edx + 0x18], 0
cmp byte [esi + 0x1e], 0
je 0x415ad2
push dword [esi + 0x38]
call fcn.00403dd6
mov eax, dword [esp + 0x48]
pop ecx
mov ecx, dword [esp + 0x48]
mov dword [esi + 0x40], eax
mov eax, dword [esp + 0x20]
mov dword [esi + 0x44], eax
mov eax, dword [ecx + 0x18]
mov dword [esi + 0x34], eax
test byte [ecx + 0x1c], 0x40
je 0x415a90
mov eax, dword [ecx + 0x14]
mov edx, 0xffbf
mov dword [esi + 0x38], eax
mov ax, word [ecx + 0x1c]
and ax, dx
mov edx, 0x100
or ax, dx
xor edx, edx
mov word [ecx + 0x1c], ax
jmp 0x415acd
add eax, 2
push eax
call fcn.00403d0f
mov dword [esi + 0x38], eax
pop ecx
test eax, eax
je 0x413d8b
mov ecx, dword [esp + 0x48]
push dword [esi + 0x34]
push dword [ecx + 0x14]
push eax
call fcn.0044fac0
mov ecx, dword [esi + 0x38]
add esp, 0xc
mov eax, dword [esi + 0x34]
xor edx, edx
mov byte [ecx + eax], dl
mov ecx, dword [esi + 0x38]
mov eax, dword [esi + 0x34]
mov byte [ecx + eax + 1], dl
mov byte [esi + 0x1c], dl
jmp 0x415b09
bt eax, 0xb
jae 0x415adc
mov ecx, dword [edx]
jmp 0x415ade
xor ecx, ecx
movzx eax, byte [ebx + 3]
and eax, 8
push eax
mov eax, dword [esp + 0x24]
push ecx
push dword [edx + 0x18]
mov ecx, dword [esi]
push dword [edx + 0x14]
xor edx, edx
push eax
mov eax, dword [esp + 0x58]
push eax
call fcn.0040ea12
add esp, 0x18
mov dword [esp + 0xc], eax
xor edx, edx
mov eax, dword [esp + 0xc]
mov byte [esi + 0x19], dl
mov byte [esi + 0x1f], dl
mov dword [esi + 0x68], edx
test eax, eax
jne 0x413b4e
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x88]
test edx, edx
je 0x413b4e
cmp dword [ebx + 0x10], eax
je 0x413b4e
push dword [esp + 0x20]
imul ecx, dword [esi + 4], 0x18
push dword [esp + 0x48]
mov eax, dword [esp + 0x1c]
push dword [ebx + 0x10]
mov eax, dword [eax + 8]
push dword [ecx + eax]
push 4
pop eax
test byte [ebx + 3], al
push 0x12
pop eax
push 0x17
pop ecx
cmovne eax, ecx
push eax
mov eax, dword [esp + 0x28]
push dword [eax + 0x84]
call edx
add esp, 0x18
jmp 0x415dbe
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov esi, dword [eax + ecx*4]
xor eax, eax
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x88], eax
je 0x415ba6
cmp dword [ebx + 0x10], eax
je 0x415ba6
mov eax, dword [esi + 8]
mov dword [esp + 0xbc], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0xb8], eax
mov ecx, esi
call fcn.0041208b
test eax, eax
jne 0x415250
mov ecx, dword [esi]
call fcn.0040ebba
xor ecx, ecx
mov dword [esp + 0xc], eax
mov byte [esi + 0x1d], cl
mov dword [esi + 0x68], ecx
test eax, eax
jne 0x415c13
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x88]
test edx, edx
je 0x415c13
cmp dword [ebx + 0x10], eax
je 0x415c13
push dword [esp + 0xb8]
imul ecx, dword [esi + 4], 0x18
mov eax, dword [esp + 0x18]
push dword [esp + 0xc0]
push dword [ebx + 0x10]
mov eax, dword [eax + 8]
push dword [ecx + eax]
mov eax, dword [esp + 0x24]
push 9
push dword [eax + 0x84]
call edx
mov eax, dword [esp + 0x24]
add esp, 0x18
test byte [ebx + 8], 1
mov ecx, dword [esp + 0x10]
push 4
pop edx
je 0x413b55
inc dword [edi + 0x104]
jmp 0x413b55
xor edx, edx
cmp dword [ebx + 4], edx
je 0x415c46
mov ecx, dword [esp + 0x14]
mov eax, dword [edi + 0x104]
add dword [ecx + 0x40], eax
mov dword [ecx + 0x3c], eax
mov dword [edi + 0x104], edx
jmp case.0x413ae8.11
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov esi, dword [eax + ecx*4]
mov ecx, esi
mov dword [esp + 0x30], esi
mov ebx, dword [esi]
mov dword [esp + 0x1c], ebx
call fcn.0041208b
test eax, eax
jne 0x415250
mov ecx, ebx
cmp byte [esi + 0x21], al
je 0x415cb3
lea edx, [esp + 0xf8]
call fcn.0040bfc0
xor ebx, ebx
cmp dword [esp + 0xfc], ebx
jg 0x413cab
mov esi, dword [esp + 0xf8]
jl 0x415caa
cmp esi, 0x3b9aca00
ja 0x413cab
mov dword [esp + 0xa4], esi
jmp 0x415cd4
lea edx, [esp + 0xa4]
call fcn.0040c008
mov esi, dword [esp + 0xa4]
cmp esi, 0x3b9aca00
ja 0x413cab
xor ebx, ebx
mov edx, dword [esp + 0x18]
mov dword [edx + 0x18], esi
cmp esi, 0x20
ja 0x415cea
lea eax, [edx + 0x24]
mov ecx, 0x210
jmp 0x415d03
push esi
call fcn.00403d0f
pop ecx
test eax, eax
je 0x413d8b
mov edx, dword [esp + 0x18]
push 0x50
pop ecx
mov dword [edx + 0x20], ebx
mov word [edx + 0x1c], cx
mov ecx, dword [esp + 0x30]
mov dword [edx + 0x14], eax
push eax
push esi
cmp byte [ecx + 0x21], 0
je 0x415d25
mov ecx, dword [esp + 0x24]
xor edx, edx
call fcn.0040c3d4
pop ecx
pop ecx
jmp 0x415d32
push ebx
push dword [esp + 0x28]
call fcn.0040c414
add esp, 0x10
mov esi, dword [esp + 0x18]
mov dword [esp + 0xc], eax
mov byte [esi + 0x1f], 1
jmp 0x413b4e
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov esi, dword [eax + ecx*4]
mov ecx, esi
call fcn.0041208b
mov dword [esp + 0xc], eax
test eax, eax
jne 0x415250
cmp byte [esi + 0x19], al
je 0x415d6c
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
jmp 0x415d78
cmp byte [esi + 0x1e], 0
je 0x415d88
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ecx
jmp 0x415dae
cmp byte [esi + 0x1c], 0
jne 0x416e47
mov ecx, dword [esi]
lea edx, [esp + 0x98]
call fcn.0040bfc0
mov ecx, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x18]
push 4
mov dword [edx], eax
pop eax
mov word [edx + 0x1c], ax
mov dword [edx + 4], ecx
mov eax, dword [esp + 0x10]
inc eax
jmp 0x4139d4
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov eax, dword [eax + ecx*4]
mov byte [eax + 0x1c], 1
mov byte [eax + 0x19], 0
jmp case.0x413ae8.11
mov ecx, dword [ebx + 4]
lea edx, [esp + 0xd8]
mov eax, dword [edi + 0x30]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi]
call fcn.0040c694
xor ecx, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xd8]
mov byte [esi + 0x1c], al
mov byte [esi + 0x1f], cl
mov dword [esi + 0x68], ecx
test eax, eax
je case.0x413ae8.11
mov eax, dword [ebx + 8]
push 4
pop edx
test eax, eax
jle 0x413b81
lea ecx, [eax - 1]
mov eax, dword [esp + 0xc]
jmp 0x413b55
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x30], ecx
mov esi, dword [ecx]
test esi, esi
je 0x415e97
mov ecx, esi
call fcn.0040c547
mov ecx, eax
mov dword [esp + 0xc], ecx
test ecx, ecx
jne 0x415e79
cmp byte [esi + 0x49], al
jne 0x415e63
inc eax
xor edx, edx
mov dword [esp + 0x7c], eax
mov dword [esp + 0xc], edx
jmp 0x415e7f
and dword [esp + 0x7c], 0
mov ecx, esi
call fcn.0040c604
mov dword [esp + 0xc], eax
xor edx, edx
xor eax, eax
jmp 0x415e7f
mov eax, dword [esp + 0x7c]
xor edx, edx
mov ecx, dword [esp + 0x30]
test eax, eax
sete al
mov byte [ecx + 0x1f], dl
mov dword [ecx + 0x68], edx
mov edx, dword [esp + 0x7c]
mov byte [ecx + 0x1a], al
jmp 0x415e9e
xor edx, edx
inc edx
mov dword [esp + 0x7c], edx
mov byte [ecx + 0x1c], dl
test edx, edx
jmp 0x41465a
mov eax, dword [esp + 0x14]
xor edx, edx
cmp dword [eax + 0xa8], edx
jne 0x416fd7
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov esi, dword [eax + ecx*4]
test esi, esi
je case.0x413ae8.11
cmp byte [esi + 0x1c], dl
je 0x415ee7
mov dword [esp + 0x88], 1
mov ecx, dword [esp + 0x10]
mov byte [esi + 0x19], dl
jmp 0x413b05
cmp byte [esp + 0x2f], 0x66
lea edx, [esp + 0x88]
mov ecx, dword [esi]
jne 0x415efe
call fcn.0040c925
jmp 0x415f03
call fcn.0040ca16
mov dword [esp + 0xc], eax
xor edx, edx
mov eax, dword [esp + 0x88]
mov byte [esi + 0x1c], al
mov dword [esi + 0x68], edx
test eax, eax
jne 0x415edb
mov ecx, dword [ebx + 8]
dec ecx
jmp 0x415edf
mov eax, dword [edi + 0x30]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi]
mov dword [esp + 0x30], eax
test eax, eax
je case.0x413ae8.11
mov ecx, dword [esp + 0x4c]
mov eax, 0x800
test word [ecx + 0x1c], ax
je 0x415f5b
call fcn.0040fee3
mov dword [esp + 0xc], eax
test eax, eax
jne 0x413b4e
mov ecx, dword [esp + 0x4c]
push dword [ebx + 0xc]
mov eax, dword [ecx + 0x18]
xor ebx, ebx
push ebx
push ebx
cdq
push 0x46ba28
push edx
mov edx, dword [ecx + 0x14]
mov ecx, dword [esp + 0x44]
push eax
call fcn.0040ea12
add esp, 0x18
mov dword [esp + 0xc], eax
mov dword [esi + 0x68], ebx
jmp 0x413b4e
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
mov esi, dword [eax]
test esi, esi
je case.0x413ae8.11
mov ecx, dword [esp + 0x4c]
lea eax, [esp + 0xdc]
push eax
xor ebx, ebx
push ebx
mov eax, dword [ecx + 0x18]
cdq
push edx
mov edx, dword [ecx + 0x14]
mov ecx, esi
push eax
call fcn.0040c6bf
add esp, 0x10
mov dword [esp + 0xc], eax
test eax, eax
jne 0x415fdd
cmp dword [esp + 0xdc], ebx
jne 0x415fdd
mov ecx, esi
call fcn.0040ebba
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x30]
mov dword [ecx + 0x68], ebx
jmp 0x413b4e
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
test ecx, ecx
je case.0x413ae8.11
cmp byte [eax + 0x1c], 0
jne case.0x413ae8.11
lea edx, [esp + 0x100]
call fcn.0041270b
mov dword [esp + 0xc], eax
test eax, eax
jne 0x415250
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x104]
push 4
pop eax
mov word [edx + 0x1c], ax
mov eax, dword [esp + 0x100]
mov dword [edx], eax
jmp 0x415dbb
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov esi, dword [eax + ecx*4]
cmp dword [esi], 0
je case.0x413ae8.11
mov edx, dword [esp + 0x40]
mov eax, 0x800
test word [edx + 0x1c], ax
je 0x41606a
mov ecx, edx
call fcn.0040fee3
mov edx, dword [esp + 0x40]
mov ecx, dword [esi + 0x48]
mov al, byte [ebx + 3]
mov byte [ecx], al
lea eax, [esp + 0x8c]
push eax
push dword [edx + 0x14]
mov edx, dword [edx + 0x18]
mov ecx, esi
call fcn.004127c2
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x48]
pop ecx
pop ecx
mov byte [eax], 0
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x413b4e
cmp byte [ebx], 0x27
mov ecx, dword [esp + 0x8c]
jne 0x4160af
neg ecx
jmp 0x4160b4
mov eax, dword [esp + 0xc]
inc ecx
mov dword [esp + 0x8c], ecx
test ecx, ecx
jle 0x413b4e
jmp 0x415678
mov ecx, dword [esp + 0x14]
xor eax, eax
mov edx, eax
mov ecx, dword [ecx + 0x5c]
test ecx, ecx
je 0x4160ff
cmp dword [ecx + 0x44], 0xbdf20da3
jne 0x4160ef
cmp byte [ecx + 0x101], 2
jae 0x4160ef
cmp dword [ecx + 0x70], eax
jl 0x4160ef
inc edx
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4160d7
cmp edx, 1
jg 0x416e92
imul ecx, dword [ebx + 0xc], 0x18
mov eax, dword [esp + 0x14]
mov esi, dword [ebx + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], ecx
mov edi, dword [eax + ecx + 4]
mov ecx, edi
call fcn.00409e69
mov ecx, dword [edi + 4]
mov edx, esi
mov eax, dword [edi]
mov dword [ecx + 4], eax
lea eax, [esp + 0xe0]
push eax
mov ecx, edi
call fcn.0040f1fa
pop ecx
mov ecx, edi
mov dword [esp + 0xc], eax
call fcn.00409ecc
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0xe0]
push 4
pop eax
mov word [ecx + 0x1c], ax
mov eax, esi
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0xc]
mov dword [ecx + 4], edx
test eax, eax
jne 0x416658
test esi, esi
je 0x416658
mov eax, dword [esp + 0x14]
mov edi, dword [ebx + 4]
mov ecx, dword [eax + 8]
add ecx, dword [esp + 0x30]
mov eax, dword [ecx + 0x14]
mov eax, dword [eax + 0x10]
jmp 0x416192
mov edx, dword [eax + 8]
cmp dword [edx + 0x14], esi
jne 0x416190
mov dword [edx + 0x14], edi
mov eax, dword [eax]
test eax, eax
jne 0x416185
mov eax, dword [ecx + 0x14]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x416654
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x14], esi
jne 0x4161af
mov dword [ecx + 0x14], edi
mov eax, dword [eax]
test eax, eax
jne 0x4161a4
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x38]
inc eax
jmp 0x4139d4
imul eax, dword [ebx + 8], 0x18
mov ecx, dword [esp + 0x14]
mov edx, dword [ebx + 4]
mov ecx, dword [ecx + 8]
mov ecx, dword [eax + ecx + 4]
call fcn.0040f188
jmp 0x414bef
imul ecx, dword [ebx + 4], 0x18
mov eax, dword [esp + 0x14]
push 5
add ecx, dword [eax + 8]
cmp dl, 0x31
pop eax
push 2
pop edx
mov ecx, dword [ecx + 4]
cmovne eax, edx
push eax
lea edx, [esp + 0xe8]
call fcn.0040f043
mov dword [esp + 0x10], eax
pop ecx
push 4
test eax, eax
jne 0x416e3e
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xe8]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
mov dword [ecx + 4], edx
inc eax
pop edx
mov word [ecx + 0x1c], dx
jmp 0x4139d7
mov ecx, dword [ebx + 4]
imul edx, ecx, 0x18
cmp dword [ebx + 8], 0
jne 0x416256
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
mov eax, dword [eax + edx + 0x14]
test byte [eax + 0x5a], 1
je case.0x413ae8.11
mov eax, dword [esp + 0x14]
cmp ecx, 1
push dword [ebx + 0x10]
mov dword [esp + 0x114], eax
mov esi, str.sqlite_temp_master
lea eax, [edi + 0xf4]
mov dword [esp + 0x118], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x11c], eax
mov eax, str.sqlite_master
cmove eax, esi
push eax
mov eax, dword [ecx + 8]
push dword [edx + eax]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s
push ecx
call fcn.0040521d
mov esi, eax
add esp, 0x14
test esi, esi
je 0x413d8b
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x110]
xor ebx, ebx
push ebx
push ecx
push fcn.0041fe23
push esi
push eax
mov byte [eax + 0x50], 1
call fcn.0041faae
add esp, 0x14
push 4
pop ecx
cmp eax, ecx
push esi
cmove eax, dword [esp + 0x120]
mov dword [esp + 0x10], eax
call fcn.00403dd6
mov eax, dword [esp + 0x18]
pop ecx
mov byte [eax + 0x50], bl
mov eax, dword [esp + 0xc]
cmp eax, 7
je 0x413d8b
jmp 0x413b4e
mov edx, dword [ebx + 4]
mov ecx, dword [esp + 0x14]
call fcn.0041b81f
jmp 0x414bef
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
call fcn.0041c58a
jmp 0x413d27
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
call fcn.0041c260
jmp 0x413d27
mov edx, dword [ebx + 0x10]
mov ecx, edx
mov esi, dword [ebx + 4]
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x416342
mov eax, dword [esp + 0x14]
sub ecx, ebx
push 0
push ecx
imul ecx, esi, 0x18
mov eax, dword [eax + 8]
mov ecx, dword [ecx + eax + 0x14]
add ecx, 0x2c
call fcn.004066aa
mov esi, eax
pop ecx
pop ecx
test esi, esi
je case.0x413ae8.11
mov ecx, esi
call fcn.004239ff
mov edx, eax
mov eax, dword [edx + 0x20]
cmp eax, esi
jne 0x416391
mov ecx, dword [esi + 0x28]
mov dword [edx + 0x20], ecx
jmp 0x41639c
lea ecx, [eax + 0x28]
mov eax, dword [ecx]
cmp eax, esi
je 0x416397
test eax, eax
jne 0x416388
jmp 0x41639c
mov eax, dword [eax + 0x28]
mov dword [ecx], eax
mov ecx, esi
call fcn.004238cc
mov eax, dword [esp + 0x14]
push 0x10
pop ecx
or dword [eax + 0xc], ecx
jmp case.0x413ae8.11
mov eax, dword [ebx + 8]
mov dword [esp + 0x44], eax
lea eax, [eax*4 + 4]
push eax
call fcn.00403d0f
mov edx, eax
xor eax, eax
mov dword [esp + 0x4c], edx
pop ecx
test edx, edx
je 0x413d8d
imul esi, dword [ebx + 0xc], 0x48
imul ecx, dword [ebx + 4], 0x48
add esi, dword [edi + 0x4c]
add ecx, dword [edi + 0x4c]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x44], eax
jle 0x416427
mov ebx, dword [esp + 0x44]
mov esi, ecx
mov edi, eax
mov ecx, esi
call fcn.004101d0
mov edx, dword [esp + 0x48]
push 0x48
mov dword [edx + edi*4], eax
inc edi
pop eax
add esi, eax
cmp edi, ebx
jl 0x4163fb
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x20]
and dword [edx + eax*4], 0
lea eax, [esp + 0xa8]
mov ecx, dword [esp + 0x14]
push eax
movzx eax, byte [ebx + 3]
push dword [esi]
mov ecx, dword [ecx + 8]
push dword [esp + 0x4c]
imul eax, eax, 0x18
mov ecx, dword [eax + ecx + 4]
call fcn.0040fbe0
mov ecx, dword [esp + 0x28]
mov esi, eax
mov eax, dword [esp + 0xb4]
add esp, 0xc
mov ebx, dword [esp + 0x24]
cdq
sub dword [ecx], eax
sbb dword [ecx + 4], edx
mov ecx, ebx
call fcn.00410317
cmp dword [esp + 0xa8], 0
je 0x41649e
mov dword [ebx + 0x14], esi
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x416481
sub esi, ecx
mov dword [ebx + 0x18], esi
mov esi, dword [esp + 0x24]
push 0x62
pop eax
and dword [esi + 0x20], 0
mov word [esi + 0x1c], ax
jmp 0x4164a2
mov esi, dword [esp + 0x24]
movzx edx, byte [esp + 0x58]
mov ecx, esi
mov byte [esi + 0x1f], 1
call fcn.0040fec9
push dword [esp + 0x48]
call fcn.00403dd6
jmp 0x413d27
mov ecx, dword [esp + 0x24]
call fcn.004101d0
mov esi, dword [edi + 0x60]
mov ebx, eax
mov dword [esp + 0x30], edx
test esi, esi
jne 0x4164f0
push 0x14
pop ecx
call fcn.0040fe7a
mov esi, eax
mov dword [edi + 0x5c], esi
mov dword [edi + 0x60], esi
test esi, esi
je 0x413d8b
jmp 0x41650f
mov eax, dword [esi + 4]
cmp eax, dword [esi]
jl 0x41650f
mov ecx, dword [edi + 0x58]
call fcn.0040fe7a
mov dword [esi + 0xc], eax
test eax, eax
je 0x413d8b
mov dword [edi + 0x60], eax
mov esi, eax
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x30]
mov dword [esi + eax*8 + 0x10], ebx
mov dword [esi + eax*8 + 0x14], ecx
inc dword [esi + 4]
inc dword [edi + 0x58]
jmp case.0x413ae8.11
mov eax, dword [esp + 0x14]
xor edx, edx
cmp dword [eax + 0xa8], edx
jne 0x416fd7
imul esi, dword [ebx + 4], 0x48
add esi, dword [edi + 0x4c]
mov dword [esp + 0x18], esi
test byte [esi + 0x1c], 0x40
je 0x416555
mov ecx, esi
call fcn.0041015a
xor edx, edx
push 4
pop eax
mov word [esi + 0x1c], ax
cmp dword [edi + 0x58], edx
je 0x413b01
mov edx, dword [edi + 0x5c]
mov eax, dword [edx + 8]
mov ecx, dword [edx + eax*8 + 0x10]
mov eax, dword [edx + eax*8 + 0x14]
mov dword [esi], ecx
mov dword [esi + 4], eax
inc dword [edx + 8]
dec dword [edi + 0x58]
mov eax, dword [edx + 8]
cmp eax, dword [edx + 4]
jl case.0x413ae8.11
mov eax, dword [edx + 0xc]
push edx
mov dword [edi + 0x5c], eax
call fcn.00403dd6
mov eax, dword [esp + 0x10]
xor edx, edx
pop ecx
mov ecx, dword [esp + 0x10]
push 4
cmp dword [edi + 0x58], edx
jne 0x413b54
mov dword [edi + 0x60], edx
jmp 0x413b54
mov esi, dword [edi + 0x64]
lea eax, [esi + 1]
mov dword [edi + 0x64], eax
cmp esi, dword [edi + 0x68]
jl 0x4165e4
mov edx, dword [edi + 0x6c]
mov ecx, dword [esp + 0x14]
mov dword [edi + 0x68], eax
lea eax, [esi + 1]
imul eax, eax, 0x18
push eax
call fcn.004040b3
mov dword [edi + 0x6c], eax
pop ecx
test eax, eax
je 0x413d8b
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
imul edi, esi, 0x18
lea esi, [edx + 0x58]
mov eax, dword [ecx + 0x28]
mov ecx, dword [ecx + 0x2c]
add edi, dword [edx + 0x6c]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov eax, dword [edx + 0x104]
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]
lea edi, [edx + 0x58]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [esp + 0xc]
mov edi, edx
jmp 0x413b4e
dec dword [edi + 0x64]
imul esi, dword [edi + 0x64], 0x18
mov edx, dword [esp + 0x14]
add esi, dword [edi + 0x6c]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [edx + 0x2c], ecx
mov dword [edx + 0x28], eax
mov eax, dword [esi + 8]
mov dword [edi + 0x104], eax
add edi, 0x58
mov ecx, edi
call fcn.0040fea6
add esi, 0xc
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x38]
jmp 0x413b4e
mov esi, dword [esp + 0x24]
mov ecx, esi
call fcn.004102d9
mov ebx, dword [esp + 0x4c]
mov ecx, ebx
call fcn.004102d9
mov ecx, dword [ebx + 4]
mov eax, dword [ebx]
cmp dword [esi + 4], ecx
jg case.0x413ae8.11
jl 0x41479e
cmp dword [esi], eax
jae case.0x413ae8.11
jmp 0x41479e
mov esi, dword [esp + 0x24]
xor edx, edx
cmp dword [esi + 4], edx
jl case.0x413ae8.11
jg 0x413b01
cmp dword [esi], edx
jbe case.0x413ae8.11
jmp 0x413b01
mov esi, dword [esp + 0x24]
xor edx, edx
cmp dword [esi + 4], edx
jg case.0x413ae8.11
jl 0x413b01
cmp dword [esi], edx
jae case.0x413ae8.11
jmp 0x413b01
mov edx, dword [esp + 0x24]
mov eax, dword [edx]
or eax, dword [edx + 4]
jmp 0x414830
imul ecx, dword [ebx + 8], 0x48
mov edx, dword [edi + 0x24]
movzx eax, byte [ebx + 3]
mov dword [esp + 0x1c], edx
xor edx, edx
mov dword [esp + 0x20], eax
mov esi, edx
add ecx, dword [edi + 0x4c]
test eax, eax
je 0x416728
mov ebx, dword [esp + 0x1c]
mov edi, eax
mov dword [ebx + esi*4], ecx
call fcn.004137b0
push 0x48
pop eax
inc esi
add ecx, eax
cmp esi, edi
jl 0x41670e
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x38]
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x128], eax
imul eax, dword [ebx + 0xc], 0x48
add eax, dword [edi + 0x4c]
mov dword [esp + 0x178], eax
inc dword [eax + 0x18]
xor eax, eax
mov ecx, dword [esp + 0x128]
inc eax
mov word [esp + 0x14c], ax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x144], edx
mov dword [esp + 0x150], edx
mov dword [esp + 0x140], eax
mov dword [esp + 0x17c], edx
mov dword [esp + 0x180], edx
cmp byte [ecx + 3], dl
je 0x41678b
mov eax, dword [ebx - 4]
mov dword [esp + 0x180], eax
push dword [esp + 0x1c]
lea eax, [esp + 0x12c]
push dword [esp + 0x24]
push eax
call dword [ecx + 0x14]
add esp, 0xc
cmp dword [esp + 0x17c], 0
je 0x4167d8
push 0
push ecx
mov dl, 1
lea ecx, [esp + 0x138]
call fcn.004107ed
pop ecx
push eax
lea eax, [edi + 0xf4]
push eax
call fcn.00404183
mov eax, dword [esp + 0x188]
add esp, 0xc
mov dword [esp + 0xc], eax
lea ecx, [esp + 0x130]
jmp 0x414508
imul esi, dword [ebx + 4], 0x48
mov edx, dword [ebx + 0x10]
add esi, dword [edi + 0x4c]
mov ecx, esi
call fcn.004100cf
xor ecx, ecx
mov dword [esp + 0xc], eax
inc ecx
cmp eax, ecx
jne 0x414218
push 0
push ecx
mov dl, cl
mov ecx, esi
call fcn.004107ed
pop ecx
push eax
lea eax, [edi + 0xf4]
push eax
call fcn.00404183
add esp, 0xc
jmp 0x414218
xor edx, edx
mov dword [esp + 0xc], edx
jmp 0x415dbe
imul ecx, dword [ebx + 4], 0x18
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
mov eax, dword [ecx + eax + 4]
mov ecx, eax
mov dword [esp + 0x1c], eax
mov esi, dword [eax + 4]
call fcn.00409e69
cmp byte [esi + 0x16], 0
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
mov dword [esi + 4], eax
jne 0x416867
mov dword [esp + 0xc], 0x65
jmp 0x41687b
mov ecx, esi
call fcn.0040a18a
xor edx, edx
mov ecx, esi
call fcn.0040b84b
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x1c]
call fcn.00409ecc
mov eax, dword [esp + 0xc]
push 4
pop edx
cmp eax, 0x65
jne 0x413b85
mov ecx, dword [ebx + 8]
dec ecx
xor eax, eax
mov dword [esp + 0xc], eax
jmp 0x413b55
cmp dword [ebx + 4], 0
jne 0x4168b2
mov ecx, dword [esp + 0x14]
jmp 0x41505b
mov byte [edi + 0xff], 1
jmp case.0x413ae8.11
mov edx, dword [ebx + 4]
mov eax, dword [ebx + 8]
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 4]
shr edx, 0x1f
not eax
test dl, dl
cmove eax, dword [ebx + 4]
imul ecx, eax, 0x18
inc dl
mov eax, dword [esp + 0x14]
mov byte [esp + 0xac], dl
mov eax, dword [eax + 8]
mov esi, dword [ecx + eax + 4]
mov ecx, esi
call fcn.00409e69
push dword [esp + 0xac]
mov ebx, dword [esp + 0x34]
mov ecx, esi
mov edx, ebx
call fcn.0040a07a
add esp, 4
mov dword [esp + 0xc], eax
test eax, eax
jne 0x416926
push dword [esp + 0xac]
mov edx, ebx
call fcn.0040a0db
pop ecx
mov dword [esp + 0xc], eax
mov ecx, esi
call fcn.00409ecc
jmp case.0x413ae8.11
mov eax, dword [esp + 0x14]
xor edx, edx
mov esi, dword [ebx + 0x10]
mov dword [esp + 0xc], edx
mov eax, dword [eax + 0xdc]
test eax, eax
jne 0x416959
mov eax, dword [esp + 0x14]
cmp dword [eax + 0xe0], edx
jg 0x416ea0
test esi, esi
je 0x416828
mov eax, dword [esi]
mov ebx, dword [eax + 0x38]
mov eax, edx
mov dword [esp + 0x1c], ebx
test ebx, ebx
je 0x413b4e
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0xe0]
test ecx, ecx
jle 0x4169b9
mov ebx, dword [esp + 0x14]
mov edi, dword [ebx + 0xdc]
mov ebx, dword [esp + 0x1c]
cmp dword [edi + eax*4], edx
mov edi, dword [esp + 0x38]
je 0x4169b9
mov ebx, dword [esp + 0x14]
mov edi, dword [ebx + 0xdc]
mov ebx, dword [esp + 0x1c]
cmp dword [edi + eax*4], esi
mov edi, dword [esp + 0x38]
je 0x416828
inc eax
cmp eax, ecx
jl 0x416982
push esi
call ebx
pop ecx
test eax, eax
jne 0x413d98
mov edx, esi
mov ecx, dword [esp + 0x14]
call fcn.00423e8f
jmp 0x414bef
imul ecx, dword [ebx + 4], 0x18
mov esi, dword [esp + 0x14]
mov edx, dword [ebx + 0x10]
mov eax, dword [esi + 8]
push dword [ecx + eax]
mov ecx, esi
call fcn.0041c110
mov esi, eax
xor edx, edx
pop ecx
mov ecx, dword [esi + 0x48]
cmp dword [esi + 0x3c], edx
jne 0x416a1b
push dword [ecx]
push 0x46bfa8
push dword [esp + 0x1c]
call fcn.0040521d
mov dword [edi + 0xf4], eax
add esp, 0xc
xor eax, eax
inc eax
jmp 0x414bef
mov eax, edx
mov edx, dword [esi + 0x40]
mov dword [esp + 0xc], eax
test edx, edx
je 0x413b4e
jmp 0x4169c7
mov esi, dword [esp + 0x14]
and dword [esp + 0xc], 0
push 2
pop eax
mov byte [edi + 0x101], al
imul ecx, dword [ebx + 4], 0x18
mov eax, dword [esi + 8]
mov edx, dword [ebx + 0x10]
push dword [ecx + eax]
mov ecx, esi
call fcn.0041c110
mov esi, eax
xor edx, edx
pop ecx
cmp dword [esi + 0x40], edx
je 0x416a81
mov ecx, dword [esi + 0x3c]
mov dword [esp + 0xc], edx
mov ecx, dword [ecx]
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x416a7e
push dword [esi + 0x40]
call eax
xor edx, edx
mov dword [esp + 0x10], eax
pop ecx
test eax, eax
jne 0x416a81
mov dword [esi + 0x40], edx
mov byte [edi + 0x101], dl
jmp case.0x413ae8.11
mov esi, dword [ebx + 0x10]
lea ecx, [esp + 0x28]
and dword [esp + 0x28], 0
push ecx
push esi
mov eax, dword [esi]
mov dword [esp + 0x38], eax
call dword [eax + 0x18]
mov dword [esp + 0x14], eax
pop ecx
pop ecx
test eax, eax
jne 0x413b4e
mov eax, dword [esp + 0x28]
mov ecx, edi
push 0xffffffffffffffff
mov dword [eax], esi
mov edx, dword [ebx + 4]
call fcn.004137db
pop ecx
test eax, eax
je 0x416adf
mov ecx, dword [esp + 0x28]
mov dword [eax + 0x60], ecx
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
mov ecx, dword [ecx]
mov dword [eax + 0x64], ecx
jmp 0x415dbe
mov eax, dword [esp + 0x14]
push dword [esp + 0x28]
mov byte [eax + 0x1e], 1
mov eax, dword [esp + 0x34]
call dword [eax + 0x1c]
pop ecx
jmp 0x415dbe
mov ecx, dword [ebx + 4]
xor esi, esi
mov eax, dword [edi + 0x30]
imul edx, dword [ebx + 0xc], 0x48
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x50], eax
add edx, dword [edi + 0x4c]
mov eax, dword [eax + 0x60]
mov ecx, dword [edx]
mov dword [esp + 0x30], ecx
mov eax, dword [eax]
mov ecx, dword [edi + 0x24]
mov dword [esp + 0x20], ecx
mov eax, dword [eax]
mov dword [esp + 0x44], eax
mov eax, dword [edx + 0x48]
mov dword [esp + 0x1c], eax
test eax, eax
jle 0x416b5f
push 0x48
lea ecx, [edx + 0x90]
mov ebx, eax
mov edx, dword [esp + 0x24]
pop edi
mov dword [edx + esi*4], ecx
call fcn.004137b0
inc esi
add ecx, edi
cmp esi, ebx
jl 0x416b40
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x50]
push ecx
push eax
mov eax, dword [esp + 0x4c]
mov byte [edi + 0x101], 1
push dword [ebx + 0x10]
push dword [esp + 0x3c]
push dword [esi + 0x60]
call dword [eax + 0x20]
xor edx, edx
mov dword [esp + 0x20], eax
add esp, 0x14
mov byte [edi + 0x101], dl
test eax, eax
jne 0x416bad
mov eax, dword [esp + 0x44]
push dword [esi + 0x60]
call dword [eax + 0x28]
test eax, eax
mov eax, dword [esp + 0x10]
pop ecx
je 0x416bab
mov ecx, dword [ebx + 8]
dec ecx
xor edx, edx
jmp 0x416bb1
xor edx, edx
mov ecx, dword [esp + 0x10]
mov byte [esi + 0x1c], dl
jmp 0x413b52
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx + 0x1c], 0
jne case.0x413ae8.11
mov ecx, dword [ecx + 0x60]
lea edx, [esp + 0x108]
push edx
push ecx
mov eax, dword [ecx]
mov eax, dword [eax]
call dword [eax + 0x30]
mov edx, dword [esp + 0x20]
pop ecx
pop ecx
mov ecx, dword [esp + 0x10c]
mov dword [esp + 0xc], eax
push 4
pop eax
mov word [edx + 0x1c], ax
mov eax, dword [esp + 0x108]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp case.0x413ae8.11
mov eax, dword [edi + 0x30]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
imul eax, dword [ebx + 0xc], 0x48
mov dword [esp + 0x30], ecx
add eax, dword [edi + 0x4c]
cmp byte [ecx + 0x1c], 0
mov dword [esp + 0x50], eax
je 0x416c2d
mov ecx, eax
jmp 0x4140d4
mov eax, dword [ecx + 0x60]
push 0x60
mov eax, dword [eax]
mov esi, dword [eax]
pop eax
push eax
lea eax, [esp + 0x12c]
push 0
push eax
call fcn.0044e5c0
xor eax, eax
add esp, 0xc
inc eax
mov word [esp + 0x14c], ax
mov eax, dword [esp + 0x14]
push dword [ebx + 8]
mov dword [esp + 0x144], eax
lea eax, [esp + 0x12c]
push eax
mov eax, dword [esp + 0x38]
push dword [eax + 0x60]
call dword [esi + 0x2c]
movzx edx, byte [esp + 0x64]
lea ecx, [esp + 0x13c]
add esp, 0xc
mov dword [esp + 0xc], eax
call fcn.0040fec9
mov ecx, dword [esp + 0x50]
lea edx, [esp + 0x130]
call fcn.00410415
mov ecx, dword [esp + 0x50]
jmp 0x41421a
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 0x1c], 0
jne case.0x413ae8.11
mov eax, dword [esi + 0x60]
mov eax, dword [eax]
mov eax, dword [eax]
mov byte [edi + 0x101], 1
push dword [esi + 0x60]
mov dword [esp + 0x34], eax
call dword [eax + 0x24]
mov dword [esp + 0x10], eax
mov byte [edi + 0x101], 0
pop ecx
test eax, eax
jne 0x415645
mov eax, dword [esp + 0x30]
push dword [esi + 0x60]
call dword [eax + 0x28]
test eax, eax
mov eax, dword [esp + 0x10]
pop ecx
jne 0x413b4e
jmp 0x415645
mov esi, dword [ebx + 0x10]
imul ebx, dword [ebx + 4], 0x48
add ebx, dword [edi + 0x4c]
test byte [ebx + 0x1c], 0x12
jne 0x416d25
movzx edx, byte [esp + 0x58]
mov ecx, ebx
call fcn.0041005d
test eax, eax
jne 0x413d8b
inc dword [esi + 4]
push dword [ebx + 0x14]
mov eax, dword [esi]
push esi
call dword [eax + 0x4c]
sub dword [esi + 4], 1
pop ecx
pop ecx
mov dword [esp + 0xc], eax
jne 0x413b4e
mov eax, dword [esi]
mov ecx, dword [esp + 0x14]
push esi
mov eax, dword [eax + 0x10]
call eax
jmp 0x413d27
mov esi, dword [ebx + 0x10]
mov eax, dword [ebx + 8]
mov dword [esp + 0x20], eax
xor eax, eax
mov dword [esp + 0x30], esi
mov ecx, dword [esi]
mov dword [esp + 0x50], ecx
cmp dword [ecx + 0x34], eax
je 0x416ea7
mov ecx, dword [edi + 0x24]
mov edx, eax
mov dword [esp + 0x1c], ecx
imul ecx, dword [ebx + 0xc], 0x48
add ecx, dword [edi + 0x4c]
cmp dword [esp + 0x20], eax
jle 0x416dad
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
push 0x48
pop esi
call fcn.004137b0
mov dword [ebx + edx*4], ecx
add ecx, esi
inc edx
cmp edx, edi
jl 0x416d92
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x30]
inc dword [esi + 4]
lea eax, [esp + 0xc0]
push eax
push dword [esp + 0x20]
mov eax, dword [esp + 0x58]
push dword [esp + 0x28]
push esi
call dword [eax + 0x34]
add esp, 0x10
mov dword [esp + 0xc], eax
sub dword [esi + 4], 1
jne 0x416de6
mov eax, dword [esi]
mov ecx, dword [esp + 0x14]
push esi
mov eax, dword [eax + 0x10]
call eax
mov eax, dword [esp + 0x10]
pop ecx
cmp dword [ebx + 4], 0
je 0x413b4e
test eax, eax
jne 0x413b4e
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
mov dword [edx + 0x28], eax
mov eax, edx
mov dword [eax + 0x2c], ecx
jmp 0x415dbe
cmp dword [ebx + 0x10], 0
je case.0x413ae8.11
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x64]
test eax, eax
je case.0x413ae8.11
push dword [ebx + 0x10]
push dword [ecx + 0x68]
call eax
pop ecx
jmp 0x413d27
mov ecx, dword [esp + 0x14]
jmp 0x413b54
push 4
pop edx
jmp 0x413b85
push 9
jmp 0x413d97
lea ecx, [esp + 0x190]
call fcn.0041015a
jmp 0x413d8b
mov ecx, dword [esp + 0x10]
mov dword [edi + 0x70], ecx
jmp 0x416f0f
mov ecx, dword [esp + 0x10]
push 5
pop eax
mov dword [edi + 0x70], ecx
mov ebx, eax
mov dword [edi + 0x74], eax
jmp 0x413da5
mov edi, dword [esp + 0x38]
push 0xd
jmp 0x41524f
push 6
pop eax
push 2
pop ecx
mov dword [edi + 0x7c], ecx
jmp 0x413d98
push 6
jmp 0x413d97
xor eax, eax
inc eax
jmp 0x413d98
mov esi, dword [esp + 0x14]
xor ecx, ecx
mov al, byte [ebx + 4]
inc ecx
mov byte [esp + 0x2f], al
cmp dword [esi + 0x60], ecx
jle 0x416ed3
test al, al
je 0x416ed3
cmp byte [esi + 0x1c], 0
jne 0x416ed3
mov eax, ecx
jmp 0x413d98
cmp al, byte [esi + 0x1c]
je 0x416ecc
cmp dword [ebx + 8], 0
je 0x416eed
mov ecx, esi
call fcn.0042917a
xor eax, eax
inc eax
mov byte [esi + 0x1c], al
jmp 0x416f1c
mov ecx, edi
mov byte [esi + 0x1c], al
call fcn.00411c01
push 5
pop edx
cmp eax, edx
jne 0x416f19
mov ecx, dword [esp + 0x10]
xor eax, eax
inc eax
mov dword [edi + 0x70], ecx
sub al, byte [esp + 0x2f]
mov byte [esi + 0x1c], al
mov ebx, edx
mov dword [edi + 0x74], edx
jmp 0x413da5
xor eax, eax
inc eax
push 0x65
pop ebx
jmp 0x416f6c
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x10]
mov dword [edi + 0x74], eax
mov dword [edi + 0x70], ecx
mov eax, dword [ebx + 8]
mov dword [edi + 0x7c], eax
cmp dword [ebx + 0x10], 0
je 0x416f4e
push 0
push dword [ebx + 0x10]
lea eax, [edi + 0xf4]
push eax
call fcn.00404183
add esp, 0xc
mov ecx, edi
call fcn.00411c01
push 5
pop ecx
cmp eax, ecx
jne 0x416f66
mov ebx, ecx
mov dword [edi + 0x74], ecx
jmp 0x413da5
push 0x65
pop ebx
push 1
pop eax
cmp dword [edi + 0x74], 0
cmovne ebx, eax
jmp 0x413da5
mov eax, dword [edi + 0x54]
push 2
pop ecx
add eax, ecx
or eax, 1
mov dword [edi + 0x54], eax
imul esi, dword [ebx + 4], 0x48
add esi, dword [edi + 0x4c]
mov dword [edi + 0xf8], esi
cmp dword [ebx + 8], 0
jle 0x416fc4
push 0x48
pop edi
mov ecx, esi
call fcn.0040ffd9
mov ecx, esi
call fcn.004137b0
mov eax, dword [esp + 0xb0]
add esi, edi
inc eax
mov dword [esp + 0xb0], eax
cmp eax, dword [ebx + 8]
jl 0x416f9c
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x10]
inc dword [edi + 0x50]
inc eax
push 0x64
mov dword [edi + 0x70], eax
pop ebx
jmp 0x413da5
push 9
pop eax
mov dword [edi + 0x74], eax
push edx
jmp 0x415260
xor eax, eax
inc eax
jmp 0x413d92