Function at 0x458f40
Capabilities:
Resolve function by parsing pe exports

Disassembly:
test dword [0x87ed4c], 0xfffff000
jne 0x458f70
test dword [0x87ed4c], 0xffffffff
jne 0x45a910
call fcn.007663a0
jmp fcn.00458f40
push edi
push esi
push ebp
push ebx
sub esp, 0xb0
mov esi, dword [eax + 0xc]
mov ebp, edx
mov edx, dword [eax]
mov dword [esp + 0x94], ecx
mov dword [esp + 0xa4], eax
mov eax, esi
mov dword [esp + 0x90], edx
call fcn.00438100
mov dword [esp + 0x88], eax
mov eax, esi
call fcn.00438100
mov dword [esp + 0x98], eax
movzx ebx, byte [ebp + 4]
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
mov ecx, dword [edx]
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x40], edx
mov dword [esp + 0xa8], ecx
cmp ebx, 0x71
jne 0x458fe3
xor ebx, ebx
jmp 0x4590c7
mov eax, dword [esp + 0x90]
movzx ecx, byte [eax + 0x1e]
test ecx, ecx
je 0x458ff9
xor ebx, ebx
jmp 0x4590c7
mov edi, 1
xor ebx, ebx
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0xa8]
mov dword [esp + 0x50], ebp
mov ebp, edx
mov eax, dword [esp + 0x50]
mov edx, dword [eax]
cmp edi, dword [edx]
jg 0x45a8de
mov edx, dword [ebp + 0xc]
xor eax, eax
test esi, esi
jle 0x459040
mov dword [esp + 0x40], ebp
movzx ebx, word [edx + 0xe]
cmp ebx, edi
je 0x45903c
inc eax
add edx, 0x14
cmp eax, esi
jl 0x45902c
mov ebp, dword [esp + 0x40]
cmp eax, esi
jne 0x4590a9
mov eax, dword [esp + 0x90]
xor ebx, ebx
mov dword [esp + 0x30], ebx
mov edx, 0x81
lea ecx, [esp + 0x30]
mov dword [esp + 0x34], ebx
mov dword [esp + 0xc], ebx
call fcn.004e34a0
mov ecx, eax
test ecx, ecx
je 0x45a8f6
movzx ebx, word [ecx + 2]
mov eax, dword [esp + 0xa4]
or ebx, 0xffff0400
mov word [ecx + 2], bx
mov edx, ebp
mov dword [ecx + 4], edi
call fcn.004f0620
mov ebp, eax
mov eax, dword [ebp + 0xc]
lea edx, [esi + esi*4]
mov ecx, dword [esp + 0x90]
mov word [eax + edx*4 + 0xe], di
inc esi
movzx ecx, byte [ecx + 0x1e]
inc edi
test ecx, ecx
je 0x459011
mov dword [esp + 0xa8], esi
mov esi, dword [esp + 0x48]
xor ebx, ebx
mov dword [esp + 0x40], ebp
mov ebp, dword [esp + 0x50]
mov ecx, dword [esp + 0xa8]
mov eax, dword [esp + 0x90]
lea edx, [ecx*4]
call fcn.004a76c0
mov dword [esp + 0xa0], eax
cmp dword [esp + 0xa0], 0
je 0x45a8d2
mov eax, dword [esp + 0x40]
cmp dword [esp + 0xa8], 0
mov edx, dword [eax + 0xc]
jle 0x459130
mov edi, dword [esp + 0xa8]
mov eax, ebx
mov ebx, dword [esp + 0xa0]
movzx ecx, word [edx + 0xe]
dec ecx
mov dword [ebx + eax*4], ecx
inc eax
add edx, 0x14
cmp eax, edi
jl 0x459117
mov dword [esp + 0xa8], edi
xor ebx, ebx
mov ecx, dword [esp + 0xa8]
mov eax, dword [esp + 0x90]
lea edx, [ecx + ecx*4 + 0x10]
call fcn.004a76c0
mov dword [esp + 0xac], eax
cmp dword [esp + 0xac], 0
je 0x459231
mov ecx, eax
mov edx, dword [esp + 0xa8]
lea eax, [ecx + edx*4 + 0xc]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x90]
mov word [ecx + 6], dx
mov eax, dword [eax + 8]
mov eax, dword [eax + 0xc]
movzx eax, byte [eax + 0x49]
mov byte [ecx + 4], al
test edx, edx
jle 0x459231
mov edi, ebx
mov dword [esp + 0x48], esi
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x40]
lea esi, [edi + edi*4]
mov eax, dword [ebp + 0xc]
mov ebp, dword [eax + esi*4]
movzx edx, word [ebp + 2]
test edx, 0x100
je 0x4591b4
mov edx, dword [ebp + 0x14]
jmp 0x4591fc
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x50]
mov edx, dword [eax + edi*4]
mov dword [esp + 0x38], edx
mov edx, dword [ecx + 0x1c]
test edx, edx
je 0x45a8cb
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x38]
call fcn.0045ce90
mov edx, eax
test edx, edx
je 0x45a7e2
movzx ecx, word [ebp + 2]
or ecx, 0xffff0100
mov word [ebp + 2], cx
mov dword [ebp + 0x14], edx
mov ecx, dword [esp + 0xac]
mov ebp, dword [esp + 0x40]
mov dword [ecx + edi*4 + 0xc], edx
mov eax, dword [ebp + 0xc]
mov ebx, dword [ecx + 8]
movzx edx, byte [eax + esi*4 + 0xc]
mov byte [ebx + edi], dl
inc edi
cmp edi, dword [esp + 0xa8]
jl 0x459196
mov esi, dword [esp + 0x48]
mov ebp, dword [esp + 0x50]
xor ebx, ebx
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0xa4]
mov dword [ebp + 0x18], edx
mov edi, dword [eax]
test edx, edx
je 0x459416
test edi, edi
je 0x4592a6
movzx eax, byte [edi + 0x1e]
test eax, eax
jne 0x459416
movzx eax, byte [edi + 0xe2]
test eax, eax
je 0x4592a6
movzx eax, word [edi + 0xe0]
cmp eax, 0x10
jl 0x4592a6
mov eax, dword [edi + 0xec]
mov dword [esp + 0x24], eax
test eax, eax
je 0x4592a6
mov edx, dword [eax]
mov ecx, dword [edi + 0xe4]
mov eax, dword [edi + 0xe8]
mov dword [edi + 0xec], edx
inc ecx
cmp ecx, eax
cmovge eax, ecx
mov dword [edi + 0xe4], ecx
mov dword [edi + 0xe8], eax
jmp 0x4592bf
mov eax, 0x10
call fcn.0041ebd4
mov dword [esp + 0x24], eax
cmp dword [esp + 0x24], 0
je 0x45a505
cmp dword [esp + 0x24], 0
je 0x459416
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x40]
mov dword [eax + 8], 0
mov ecx, dword [edx]
mov dword [eax + 4], ecx
mov dword [eax], ecx
mov ecx, dword [edx]
lea edx, [ecx + ecx*4]
shl edx, 2
mov eax, edi
call fcn.004a76c0
mov edx, eax
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0xc], edx
test edx, edx
je 0x45a4f7
mov ecx, dword [esp + 0x40]
cmp dword [ecx], 0
mov eax, dword [ecx + 0xc]
jle 0x45941a
mov ecx, ebx
mov dword [esp + 0x3c], ecx
mov ebx, edx
mov dword [esp + 0x38], edi
mov edi, eax
mov dword [esp + 0x48], esi
mov dword [esp + 0x50], ebp
mov eax, dword [esp + 0x38]
mov edx, dword [edi]
mov dword [esp + 0xc], 0
xor ecx, ecx
call fcn.0044cfe0
mov dword [ebx], eax
mov esi, dword [edi + 4]
test esi, esi
je 0x45a4f0
movsx ecx, byte [esi]
mov ebp, esi
test ecx, ecx
je 0x45935a
inc ebp
movsx ecx, byte [ebp]
test ecx, ecx
jne 0x459351
mov eax, dword [esp + 0x38]
sub ebp, esi
and ebp, 0x3fffffff
inc ebp
mov edx, ebp
call fcn.004a76c0
test eax, eax
je 0x459385
push ebp
push esi
push eax
mov dword [esp + 0x34], eax
call fcn.007666b0
mov eax, dword [esp + 0x34]
add esp, 0xc
mov dword [ebx + 4], eax
mov esi, dword [edi + 8]
test esi, esi
je 0x45a4e9
movsx ecx, byte [esi]
mov ebp, esi
test ecx, ecx
je 0x4593a5
inc ebp
movsx ecx, byte [ebp]
test ecx, ecx
jne 0x45939c
mov eax, dword [esp + 0x38]
sub ebp, esi
and ebp, 0x3fffffff
inc ebp
mov edx, ebp
call fcn.004a76c0
test eax, eax
je 0x4593d0
push ebp
push esi
push eax
mov dword [esp + 0x38], eax
call fcn.007666b0
mov eax, dword [esp + 0x38]
add esp, 0xc
mov dword [ebx + 8], eax
movzx ecx, byte [edi + 0xc]
mov byte [ebx + 0xc], cl
mov ecx, dword [esp + 0x3c]
inc ecx
mov byte [ebx + 0xd], 0
movzx ebp, word [edi + 0xe]
mov word [ebx + 0xe], bp
movzx esi, word [edi + 0x10]
mov ebp, dword [esp + 0x40]
mov word [ebx + 0x10], si
add ebx, 0x14
add edi, 0x14
cmp ecx, dword [ebp]
mov dword [esp + 0x3c], ecx
jl 0x459326
mov esi, dword [esp + 0x48]
mov ebp, dword [esp + 0x50]
xor ebx, ebx
jmp 0x45941a
mov dword [esp + 0x24], ebx
mov edx, dword [esp + 0x8c]
cmp dword [esp + 0x9c], 0x71
mov eax, dword [esp + 0x24]
mov dword [edx + 0x18], eax
jne 0x45943f
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
jmp 0x459581
mov ecx, dword [ebp]
mov eax, dword [ecx]
mov edx, dword [esp + 0xa4]
mov edx, dword [edx + 0x38]
mov dword [esp + 0x38], eax
lea ecx, [eax + 1]
cmp ecx, edx
jg 0x45947b
mov eax, dword [esp + 0xa4]
mov edi, dword [esp + 0x38]
sub edx, ecx
mov ebx, dword [eax + 0x3c]
mov dword [esp + 0x5c], ebx
lea ebx, [ebx + edi + 1]
mov dword [eax + 0x3c], ebx
xor ebx, ebx
mov dword [eax + 0x38], edx
jmp 0x459497
mov eax, dword [esp + 0xa4]
mov ecx, dword [eax + 0x48]
lea edx, [ecx + 1]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x38]
lea edx, [ecx + edx + 1]
mov dword [eax + 0x48], edx
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov edi, eax
jl 0x4594af
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x4594dc
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x14]
inc eax
mov dword [esi + 0xc], eax
lea ecx, [edi + edi*4]
mov eax, dword [esp + 0x5c]
mov byte [edx + ecx*4], 7
mov byte [edx + ecx*4 + 3], bl
mov dword [edx + ecx*4 + 4], ebx
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x90]
lea edi, [ecx + ecx*4 + 0x10]
mov edx, edi
call fcn.004a76c0
mov dword [esp + 0x58], eax
cmp dword [esp + 0x58], 0
je 0x459511
push edi
push 0
push dword [esp + 0x60]
call fcn.00766740
add esp, 0xc
cmp dword [esp + 0x58], 0
je 0x459581
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x58]
lea eax, [ecx + edx*4 + 0xc]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x90]
mov word [ecx + 6], dx
mov eax, dword [eax + 8]
mov eax, dword [eax + 0xc]
movzx eax, byte [eax + 0x49]
mov byte [ecx + 4], al
test edx, edx
jle 0x459581
mov edi, ebx
mov ebx, ecx
mov dword [esp + 0x48], esi
mov edx, dword [ebp + 0x1c]
test edx, edx
je 0x45a7db
mov eax, dword [esp + 0xa4]
mov ecx, edi
call fcn.0045ce90
mov edx, eax
test edx, edx
je 0x45a6fb
mov dword [ebx + edi*4 + 0xc], edx
mov eax, dword [ebx + 8]
mov byte [eax + edi], 0
inc edi
cmp edi, dword [esp + 0x38]
jl 0x459546
mov esi, dword [esp + 0x48]
xor ebx, ebx
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0xa4]
mov dword [ebp + 0x1c], ebx
mov dword [ecx + 0x24], ebx
mov ecx, dword [ebp + 0x18]
mov edx, dword [eax]
test ecx, ecx
je 0x459773
movzx eax, byte [edx + 0x1e]
test eax, eax
jne 0x459773
mov eax, dword [ecx]
cmp eax, dword [edx + 0x50]
jg 0x45a6dd
mov edx, dword [ebp]
mov edi, dword [ecx + 0xc]
mov dword [esp + 0x24], edi
test eax, eax
jle 0x459773
mov edi, ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x48], esi
mov dword [esp + 0x50], ebp
movzx edx, word [ebx + 0xe]
test edx, edx
je 0x45975d
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
cmp eax, edx
jl 0x45a599
mov ebp, dword [ebx]
lea ecx, [edx + edx*4]
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0xa4]
mov edx, dword [eax + 0xc]
mov eax, dword [edx + ecx*4 - 0x14]
mov esi, dword [esi]
movzx edx, byte [eax]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], esi
cmp edx, 0x98
je 0x45a516
mov eax, esi
mov edx, dword [esp + 0x44]
mov dword [esp + 0xc], 0
xor ecx, ecx
call fcn.0044cfe0
mov dword [esp + 0x2c], eax
mov esi, dword [esp + 0xa4]
mov eax, dword [esi]
mov dword [esp + 0xc], 1
mov edx, 0x18
xor ecx, ecx
call fcn.004e34a0
mov esi, eax
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x2c]
mov eax, dword [eax]
mov dword [esp + 0xc], 0
mov edx, esi
call fcn.004e3960
test esi, esi
je 0x459757
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x3c]
mov eax, dword [eax + 0xc]
movzx ecx, word [eax + edx*4 - 4]
test ecx, ecx
jne 0x4596ce
mov edx, dword [esp + 0xa4]
mov eax, dword [edx + 0x1d0]
mov dword [esp + 0x24], esi
inc eax
mov esi, dword [esp + 0x3c]
mov dword [edx + 0x1d0], eax
mov edx, dword [esp + 0x4c]
mov ecx, dword [edx + 0xc]
mov word [ecx + esi*4 - 4], ax
mov eax, dword [edx + 0xc]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x3c]
movzx eax, word [eax + edx*4 - 4]
mov dword [esi + 0x18], eax
movzx eax, word [ebp + 2]
test eax, 0x100
je 0x4596fd
mov eax, dword [ebp + 0x14]
movzx edx, word [esi + 2]
mov dword [esi + 0x14], eax
or edx, 0xffff0100
mov word [esi + 2], dx
movzx eax, word [ebp + 2]
or eax, 0xffff4000
mov word [ebp + 2], ax
mov eax, dword [esp + 0x40]
mov edx, ebp
call fcn.0044db10
movsd xmm0, qword [esi]
movsd qword [ebp], xmm0
movsd xmm1, qword [esi + 8]
movsd qword [ebp + 8], xmm1
movsd xmm2, qword [esi + 0x10]
movsd qword [ebp + 0x10], xmm2
movsd xmm3, qword [esi + 0x18]
movsd qword [ebp + 0x18], xmm3
movsd xmm4, qword [esi + 0x20]
movsd qword [ebp + 0x20], xmm4
movsd xmm5, qword [esi + 0x28]
movsd qword [ebp + 0x28], xmm5
mov eax, dword [esp + 0x40]
mov edx, esi
call fcn.004e33d8
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
inc edi
add ebx, 0x14
cmp edi, eax
jl 0x4595e1
mov esi, dword [esp + 0x48]
mov ebp, dword [esp + 0x50]
xor ebx, ebx
mov eax, dword [esp + 0x8c]
cmp dword [eax + 0x1c], 0
je 0x45a6ba
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x88]
mov edx, ebp
call fcn.0045e830
cmp dword [ebp + 0x30], 0
je 0x4597ad
cmp dword [esp + 0x9c], 0x71
je 0x45a5c0
mov dword [esp + 0x2c], ebx
mov edi, ebx
mov edx, dword [ebp + 0x28]
test edx, edx
je 0x4597c6
mov eax, dword [esp + 0x90]
call fcn.0044db10
mov edx, dword [ebp + 0x2c]
mov dword [ebp + 0x28], 0
test edx, edx
je 0x4597e0
mov eax, dword [esp + 0x90]
call fcn.0044db10
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0xa4]
mov dword [ebp + 0x2c], 0
mov eax, dword [edi + 0x48]
lea ecx, [eax + 1]
lea edx, [eax + 2]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x64], edx
lea edx, [eax + 3]
mov dword [esp + 0x68], edx
lea edx, [eax + 4]
mov dword [esp + 0x60], edx
lea edx, [eax + 5]
add eax, 6
mov dword [esp + 0x24], edx
mov edx, 0xa
mov dword [esp + 0x84], eax
mov dword [edi + 0x48], eax
mov edi, dword [esp + 0x28]
lea eax, [esp + 0x38]
call fcn.0058d110
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x48]
mov edx, 0xa
call fcn.0058d110
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov dword [esp + 0x7c], eax
jl 0x459863
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x459892
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x14]
inc eax
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x7c]
lea ecx, [eax + eax*4]
mov byte [edx + ecx*4], 1
mov byte [edx + ecx*4 + 3], bl
mov dword [edx + ecx*4 + 4], ebx
mov dword [edx + ecx*4 + 8], ebx
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
jmp 0x45989a
mov dword [esp + 0x7c], 1
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0xa4]
mov dword [edx + 0x30], edi
lea ecx, [esp + 0x38]
call fcn.005671b0
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov edi, eax
jl 0x4598d3
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x459904
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x14]
inc eax
mov dword [esi + 0xc], eax
lea ecx, [edi + edi*4]
mov eax, dword [esp + 0x64]
mov byte [edx + ecx*4], 7
mov byte [edx + ecx*4 + 3], bl
mov dword [edx + ecx*4 + 4], 1
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov edi, eax
jl 0x45991c
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x459949
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x14]
inc eax
mov dword [esi + 0xc], eax
lea ecx, [edi + edi*4]
mov eax, dword [esp + 0x70]
mov byte [edx + ecx*4], 4
mov byte [edx + ecx*4 + 3], bl
mov dword [edx + ecx*4 + 4], eax
mov dword [edx + ecx*4 + 8], ebx
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
mov edi, dword [ebp + 0x34]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x6c], eax
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xa4]
mov dword [ebp + 0x30], edx
mov edx, ebp
lea ecx, [esp + 0x48]
mov dword [ebp + 0x34], 0
call fcn.005671b0
mov eax, dword [esp + 0x28]
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x34], edi
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov edi, eax
jl 0x45999c
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x4599cd
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x14]
inc eax
mov dword [esi + 0xc], eax
lea ecx, [edi + edi*4]
mov eax, dword [esp + 0x60]
mov byte [edx + ecx*4], 7
mov byte [edx + ecx*4 + 3], bl
mov dword [edx + ecx*4 + 4], 1
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov edi, eax
jl 0x4599e5
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x459a12
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x14]
inc eax
mov dword [esi + 0xc], eax
lea ecx, [edi + edi*4]
mov eax, dword [esp + 0x68]
mov byte [edx + ecx*4], 4
mov byte [edx + ecx*4 + 3], bl
mov dword [edx + ecx*4 + 4], eax
mov dword [edx + ecx*4 + 8], ebx
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esp + 0x94]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x1c], 0xfffffff0
mov edx, ebp
lea ecx, [esp + 0x38]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xa4]
call fcn.0045c2c0
mov dword [esp + 0x78], eax
cmp dword [esp + 0x9c], 0x70
je 0x459b0e
cmp dword [esp + 0x9c], 0x71
je 0x459b0e
cmp dword [esp + 0x9c], 0x73
je 0x459a97
cmp dword [esp + 0x9c], 0x72
je 0x459a97
mov dword [esp + 0x28], ebx
jmp 0x459b5d
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov dword [esp + 0x2c], eax
jl 0x459ab1
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x459ae7
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x14]
inc eax
mov edx, dword [esp + 0x88]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x2c]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4], 1
mov byte [ecx + eax*4 + 3], bl
mov dword [ecx + eax*4 + 4], ebx
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], ebx
mov dword [ecx + eax*4 + 0x10], ebx
mov byte [ecx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
jmp 0x459aef
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x9c], 0x73
mov dword [esp + 0x58], eax
mov dword [esp + 0x28], ebx
je 0x459dbe
jmp 0x459c8f
mov eax, dword [esp + 0x94]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x1c], 0xffffffef
mov edx, ebp
lea ecx, [esp + 0x48]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xa4]
call fcn.0045c2c0
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov dword [esp + 0x58], eax
jl 0x459b77
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x459bb1
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x88]
inc eax
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x58]
lea edi, [eax + eax*4]
mov eax, dword [esi + 0x14]
mov byte [eax + edi*4], 0x1a
mov byte [eax + edi*4 + 3], bl
mov dword [eax + edi*4 + 4], edx
mov dword [eax + edi*4 + 8], ecx
mov dword [eax + edi*4 + 0xc], ebx
mov dword [eax + edi*4 + 0x10], ebx
mov byte [eax + edi*4 + 1], bl
mov byte [esi + 0x62], bl
jmp 0x459bb9
mov dword [esp + 0x58], 1
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov edi, eax
jl 0x459bd1
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x459c05
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x14]
inc eax
mov edx, dword [esp + 0x28]
mov dword [esi + 0xc], eax
lea edi, [edi + edi*4]
mov eax, dword [esp + 0x84]
mov byte [ecx + edi*4], 2
mov byte [ecx + edi*4 + 3], bl
mov dword [ecx + edi*4 + 4], eax
mov dword [ecx + edi*4 + 8], edx
mov dword [ecx + edi*4 + 0xc], ebx
mov dword [ecx + edi*4 + 0x10], ebx
mov byte [ecx + edi*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov edi, eax
jl 0x459c1d
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x459c4a
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x14]
inc eax
mov dword [esi + 0xc], eax
lea ecx, [edi + edi*4]
mov eax, dword [esp + 0x68]
mov byte [edx + ecx*4], 4
mov byte [edx + ecx*4 + 3], bl
mov dword [edx + ecx*4 + 4], eax
mov dword [edx + ecx*4 + 8], ebx
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov edi, eax
jl 0x459c62
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x459c8f
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x14]
inc eax
mov dword [esi + 0xc], eax
lea ecx, [edi + edi*4]
mov eax, dword [esp + 0x58]
mov byte [edx + ecx*4], 1
mov byte [edx + ecx*4 + 3], bl
mov dword [edx + ecx*4 + 4], ebx
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov dword [esp + 0x2c], eax
jl 0x459ca9
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x459ce3
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x88]
inc eax
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x2c]
lea edi, [eax + eax*4]
mov eax, dword [esi + 0x14]
mov byte [eax + edi*4], 0x1a
mov byte [eax + edi*4 + 3], bl
mov dword [eax + edi*4 + 4], edx
mov dword [eax + edi*4 + 8], ecx
mov dword [eax + edi*4 + 0xc], ebx
mov dword [eax + edi*4 + 0x10], ebx
mov byte [eax + edi*4 + 1], bl
mov byte [esi + 0x62], bl
jmp 0x459ceb
mov dword [esp + 0x2c], 1
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov edi, eax
jl 0x459d03
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x459d34
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x14]
inc eax
mov edx, dword [esp + 0x78]
mov dword [esi + 0xc], eax
lea edi, [edi + edi*4]
mov eax, dword [esp + 0x24]
mov byte [ecx + edi*4], 2
mov byte [ecx + edi*4 + 3], bl
mov dword [ecx + edi*4 + 4], eax
mov dword [ecx + edi*4 + 8], edx
mov dword [ecx + edi*4 + 0xc], ebx
mov dword [ecx + edi*4 + 0x10], ebx
mov byte [ecx + edi*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov edi, eax
jl 0x459d4c
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x459d79
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x14]
inc eax
mov dword [esi + 0xc], eax
lea ecx, [edi + edi*4]
mov eax, dword [esp + 0x70]
mov byte [edx + ecx*4], 4
mov byte [edx + ecx*4 + 3], bl
mov dword [edx + ecx*4 + 4], eax
mov dword [edx + ecx*4 + 8], ebx
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov edi, eax
jl 0x459d91
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x459dbe
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x14]
inc eax
mov dword [esi + 0xc], eax
lea ecx, [edi + edi*4]
mov eax, dword [esp + 0x2c]
mov byte [edx + ecx*4], 1
mov byte [edx + ecx*4 + 3], bl
mov dword [edx + ecx*4 + 4], ebx
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov edi, eax
jl 0x459dd6
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x459e09
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x14]
inc eax
mov ecx, dword [esp + 0x24]
mov dword [esi + 0xc], eax
lea eax, [edi + edi*4]
mov byte [edx + eax*4], 2
mov byte [edx + eax*4 + 3], bl
mov dword [edx + eax*4 + 4], ecx
mov ecx, dword [esp + 0x78]
mov dword [edx + eax*4 + 8], ecx
mov dword [edx + eax*4 + 0xc], ebx
mov dword [edx + eax*4 + 0x10], ebx
mov byte [edx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
jmp 0x459e0e
mov edi, 1
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov dword [esp + 0x78], edi
mov edx, eax
jl 0x459e32
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x459e5f
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x70]
lea ecx, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + ecx*4], 4
mov byte [edx + ecx*4 + 3], bl
mov dword [edx + ecx*4 + 4], eax
mov dword [edx + ecx*4 + 8], ebx
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov edx, eax
jl 0x459e7f
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x459eb0
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x64]
inc eax
mov dword [esi + 0xc], eax
lea eax, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + eax*4], 0x1a
mov byte [edx + eax*4 + 3], bl
mov dword [edx + eax*4 + 4], ecx
mov ecx, dword [esp + 0x58]
mov dword [edx + eax*4 + 8], ecx
mov dword [edx + eax*4 + 0xc], ebx
mov dword [edx + eax*4 + 0x10], ebx
mov byte [edx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov edx, eax
jl 0x459ed0
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x459f00
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x98]
lea ecx, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + ecx*4], 1
mov byte [edx + ecx*4 + 3], bl
mov dword [edx + ecx*4 + 4], ebx
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
cmp dword [esp + 0x9c], 0x71
jne 0x459f19
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x80], ecx
jmp 0x45a040
mov eax, dword [esi + 0xc]
cmp dword [esp + 0x9c], 0x73
mov dword [esp + 0x80], eax
jne 0x459f3b
mov ecx, eax
lea eax, [edi + 1]
mov dword [esp + 0x78], eax
jmp 0x45a092
mov edi, eax
cmp edi, dword [esi + 0x10]
jl 0x459f57
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x459f86
mov eax, dword [esi + 0xc]
mov dword [esp + 0x80], eax
mov edx, dword [esp + 0x70]
inc eax
mov ecx, dword [esi + 0x14]
mov dword [esi + 0xc], eax
lea eax, [edi + edi*4]
mov byte [ecx + eax*4], 4
mov byte [ecx + eax*4 + 3], bl
mov dword [ecx + eax*4 + 4], edx
mov dword [ecx + eax*4 + 8], ebx
mov dword [ecx + eax*4 + 0xc], ebx
mov dword [ecx + eax*4 + 0x10], ebx
mov byte [ecx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
jmp 0x459f8b
mov edi, 1
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov edx, eax
jl 0x459fab
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x459fdc
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x64]
inc eax
mov dword [esi + 0xc], eax
lea eax, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + eax*4], 0x1a
mov byte [edx + eax*4 + 3], bl
mov dword [edx + eax*4 + 4], ecx
mov ecx, dword [esp + 0x58]
mov dword [edx + eax*4 + 8], ecx
mov dword [edx + eax*4 + 0xc], ebx
mov dword [edx + eax*4 + 0x10], ebx
mov byte [edx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov edx, eax
jl 0x459ffc
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x45a02c
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x98]
lea ecx, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + ecx*4], 1
mov byte [edx + ecx*4 + 3], bl
mov dword [edx + ecx*4 + 4], ebx
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov ecx, dword [esi + 0xc]
cmp dword [esp + 0x9c], 0x70
mov dword [esp + 0x80], ecx
jne 0x45a092
cmp ecx, dword [esi + 0x10]
mov dword [esp + 0x24], ecx
jl 0x45a057
mov eax, esi
call fcn.0045ce30
mov ecx, dword [esi + 0xc]
test eax, eax
jne 0x45a092
mov edx, dword [esi + 0x14]
inc ecx
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x24]
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x84]
mov byte [edx + eax*4], 2
mov byte [edx + eax*4 + 3], bl
mov dword [edx + eax*4 + 4], ecx
mov ecx, dword [esp + 0x28]
mov dword [edx + eax*4 + 8], ecx
mov dword [edx + eax*4 + 0xc], ebx
mov dword [edx + eax*4 + 0x10], ebx
mov byte [edx + eax*4 + 1], bl
mov ecx, dword [esi + 0xc]
mov byte [esi + 0x62], bl
cmp ecx, dword [esi + 0x10]
mov edx, ecx
jl 0x45a0af
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x45a0dc
mov ecx, dword [esi + 0xc]
mov eax, dword [esp + 0x68]
inc ecx
mov dword [esi + 0xc], ecx
lea ecx, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + ecx*4], 4
mov byte [edx + ecx*4 + 3], bl
mov dword [edx + ecx*4 + 4], eax
mov dword [edx + ecx*4 + 8], ebx
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov edx, eax
jl 0x45a0fc
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x45a12d
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x60]
inc eax
mov dword [esi + 0xc], eax
lea eax, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + eax*4], 0x1a
mov byte [edx + eax*4 + 3], bl
mov dword [edx + eax*4 + 4], ecx
mov ecx, dword [esp + 0x2c]
mov dword [edx + eax*4 + 8], ecx
mov dword [edx + eax*4 + 0xc], ebx
mov dword [edx + eax*4 + 0x10], ebx
mov byte [edx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov edx, eax
jl 0x45a14d
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x45a17d
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x98]
lea ecx, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + ecx*4], 1
mov byte [edx + ecx*4 + 3], bl
mov dword [edx + ecx*4 + 4], ebx
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
cmp eax, dword [esp + 0x7c]
jle 0x45a197
mov edx, dword [esp + 0x7c]
lea edx, [edx + edx*4]
mov ecx, dword [esi + 0x14]
mov dword [ecx + edx*4 + 8], eax
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov dword [esp + 0x24], eax
jl 0x45a1ae
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x45a1df
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x14]
inc eax
mov edx, dword [esp + 0x64]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x24]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4], 7
mov byte [ecx + eax*4 + 3], bl
mov dword [ecx + eax*4 + 4], ebx
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], ebx
mov dword [ecx + eax*4 + 0x10], ebx
mov byte [ecx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov edx, eax
jl 0x45a1ff
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x45a22c
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x60]
lea ecx, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + ecx*4], 7
mov byte [edx + ecx*4 + 3], bl
mov dword [edx + ecx*4 + 4], ebx
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov edx, eax
jl 0x45a24c
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x45a27d
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x70]
inc eax
mov dword [esi + 0xc], eax
lea eax, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + eax*4], 2
mov byte [edx + eax*4 + 3], bl
mov dword [edx + eax*4 + 4], ecx
mov ecx, dword [esp + 0x74]
mov dword [edx + eax*4 + 8], ecx
mov dword [edx + eax*4 + 0xc], ebx
mov dword [edx + eax*4 + 0x10], ebx
mov byte [edx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov edx, eax
jl 0x45a29d
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x45a2ce
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x68]
inc eax
mov dword [esi + 0xc], eax
lea eax, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + eax*4], 2
mov byte [edx + eax*4 + 3], bl
mov dword [edx + eax*4 + 4], ecx
mov ecx, dword [esp + 0x6c]
mov dword [edx + eax*4 + 8], ecx
mov dword [edx + eax*4 + 0xc], ebx
mov dword [edx + eax*4 + 0x10], ebx
mov byte [edx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov edx, eax
jl 0x45a2ee
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x45a31f
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x64]
inc eax
mov dword [esi + 0xc], eax
lea eax, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + eax*4], 0x1a
mov byte [edx + eax*4 + 3], bl
mov dword [edx + eax*4 + 4], ecx
mov ecx, dword [esp + 0x58]
mov dword [edx + eax*4 + 8], ecx
mov dword [edx + eax*4 + 0xc], ebx
mov dword [edx + eax*4 + 0x10], ebx
mov byte [edx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov edx, eax
jl 0x45a33f
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x45a370
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x60]
inc eax
mov dword [esi + 0xc], eax
lea eax, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + eax*4], 0x1a
mov byte [edx + eax*4 + 3], bl
mov dword [edx + eax*4 + 4], ecx
mov ecx, dword [esp + 0x2c]
mov dword [edx + eax*4 + 8], ecx
mov dword [edx + eax*4 + 0xc], ebx
mov dword [edx + eax*4 + 0x10], ebx
mov byte [edx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esp + 0x98]
shl eax, 2
neg eax
mov edx, dword [esi + 0x20]
mov dword [esp + 0x98], eax
test edx, edx
je 0x45a398
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x98]
mov dword [edx + ecx - 4], eax
mov dword [esp + 0xc], ebx
mov eax, esi
mov edx, 0x17
xor ecx, ecx
mov dword [esp + 0x10], ebx
call fcn.004dcdf0
mov edx, eax
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0xc], 0xfffffff1
mov eax, esi
call fcn.004d9420
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0xc], eax
mov edx, 0x18
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x10], eax
mov eax, esi
call fcn.004dcdf0
mov edx, eax
mov ecx, dword [esp + 0xac]
mov dword [esp + 0xc], 0xfffffff0
mov eax, esi
call fcn.004d9420
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov edx, eax
jl 0x45a421
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x45a455
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x78]
inc eax
mov dword [esi + 0xc], eax
lea eax, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + eax*4], 0x19
mov byte [edx + eax*4 + 3], bl
mov dword [edx + eax*4 + 4], ecx
mov ecx, dword [esp + 0x80]
mov dword [edx + eax*4 + 8], edi
mov dword [edx + eax*4 + 0xc], ecx
mov dword [edx + eax*4 + 0x10], ebx
mov byte [edx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
cmp dword [esp + 0x5c], 0
je 0x45a474
mov ecx, dword [esp + 0xa8]
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0x5c]
inc ecx
call fcn.00438f70
mov eax, dword [esp + 0x88]
shl eax, 2
neg eax
mov edx, dword [esi + 0x20]
mov dword [esp + 0x88], eax
test edx, edx
je 0x45a49c
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x88]
mov dword [edx + ecx - 4], eax
mov eax, dword [esp + 0x94]
movzx edx, byte [eax]
cmp edx, 5
je 0x45a68e
mov esi, dword [ebp + 0x1c]
test esi, esi
je 0x45a4d2
mov eax, dword [esp + 0x90]
mov edx, esi
call fcn.004ce330
mov eax, dword [esp + 0x90]
mov edx, esi
call fcn.004e33d8
mov edx, dword [esp + 0x8c]
mov dword [ebp + 0x1c], edx
xor eax, eax
add esp, 0xb0
pop ebx
pop ebp
pop esi
pop edi
ret
xor eax, eax
jmp 0x4593d0
xor eax, eax
jmp 0x459385
mov edx, ecx
mov eax, edi
call fcn.004e33d8
jmp 0x459416
test edi, edi
je 0x4592bf
mov byte [edi + 0x1e], 1
jmp 0x4592bf
movzx edx, word [eax + 2]
and edx, 0x400
cmp edx, 0x400
je 0x45a575
mov edx, dword [eax + 4]
mov dword [esp + 0x28], edx
test edx, edx
je 0x45a575
mov edx, eax
xor eax, eax
mov dword [edx + 4], eax
xor ecx, ecx
mov dword [esp + 0xc], eax
mov eax, esi
call fcn.0044cfe0
mov esi, eax
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x44]
mov dword [edx + 4], eax
test esi, esi
je 0x459757
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x28]
or byte [esi + 0x22], 1
call fcn.004c3590
mov dword [esi + 4], eax
jmp 0x4596da
mov eax, esi
mov edx, dword [esp + 0x44]
mov dword [esp + 0xc], 0
xor ecx, ecx
call fcn.0044cfe0
mov esi, eax
test esi, esi
je 0x459757
jmp 0x4596da
mov esi, dword [esp + 0x48]
mov ebp, dword [esp + 0x50]
xor ebx, ebx
inc edi
mov dword [esp + 0xc], eax
mov edx, str.ORDER
mov eax, dword [esp + 0xa4]
mov ecx, edi
call fcn.00588640
jmp 0x459773
mov edx, dword [esp + 0xa4]
mov eax, dword [edx + 0x48]
lea edi, [eax + 1]
add eax, 2
mov dword [esp + 0x2c], eax
mov dword [edx + 0x48], eax
mov ecx, dword [ebp + 0x34]
mov dword [esp + 0x28], ecx
test ecx, ecx
je 0x45a5e8
inc dword [esp + 0x28]
jmp 0x45a5ef
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov dword [esp + 0x24], eax
jl 0x45a609
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x45a63a
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x14]
inc eax
mov edx, dword [esp + 0x28]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x24]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4], 0xe
mov byte [ecx + eax*4 + 3], bl
mov dword [ecx + eax*4 + 4], edx
mov dword [ecx + eax*4 + 8], edi
mov dword [ecx + eax*4 + 0xc], ebx
mov dword [ecx + eax*4 + 0x10], ebx
mov byte [ecx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov dword [esp + 0x24], eax
jl 0x45a658
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x4597b3
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x14]
inc eax
mov edx, dword [esp + 0x2c]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x24]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4], 0xe
mov byte [ecx + eax*4 + 3], bl
mov dword [ecx + eax*4 + 4], edi
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], ebx
mov dword [ecx + eax*4 + 0x10], ebx
mov byte [ecx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
jmp 0x4597b3
mov ecx, dword [esp + 0x8c]
mov eax, dword [ecx + 0x1c]
test eax, eax
je 0x45a6a5
mov ecx, eax
mov eax, dword [eax + 0x1c]
test eax, eax
jne 0x45a69c
mov eax, dword [esp + 0xa4]
xor edx, edx
mov ecx, dword [ecx]
call fcn.0045d610
jmp 0x45a4af
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0x8c]
mov ecx, dword [edx + 0x18]
mov dword [esp + 0xc], str.ORDER
call fcn.0045d0b0
jmp 0x459784
push str.ORDER
push str.too_many_terms_in__s_BY_clause
push dword [esp + 0xac]
call fcn.005860f0
add esp, 0xc
jmp 0x459773
mov ecx, dword [ebp]
cmp edi, dword [ecx]
jge 0x459569
mov ecx, dword [ecx + 0xc]
lea eax, [edi + edi*4]
mov ecx, dword [ecx + eax*4]
mov dword [esp + 0x28], ecx
test ecx, ecx
je 0x45a7d7
mov edx, dword [ecx + 0x14]
test edx, edx
jne 0x45a7b7
movzx eax, byte [ecx]
mov esi, dword [ecx + 0x28]
test esi, esi
je 0x45a74a
cmp eax, 0x3c
je 0x45a75f
cmp eax, 0x84
je 0x45a75f
cmp eax, 0x98
je 0x45a75f
cmp eax, 0x9a
je 0x45a75f
cmp eax, 0x25
je 0x45a756
cmp eax, 0x9d
jne 0x45a7b7
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x45a71b
jmp 0x45a7b7
movsx ecx, word [ecx + 0x1c]
test ecx, ecx
jl 0x45a7b7
mov edx, dword [esp + 0xa4]
mov eax, dword [edx]
mov dword [esp + 0x24], eax
lea edx, [ecx + ecx*2]
mov ecx, esi
mov esi, dword [ecx + 0x10]
mov edx, dword [esi + edx*8 + 0x10]
mov eax, dword [eax + 8]
mov ecx, dword [eax + 0xc]
movzx esi, byte [ecx + 0x49]
test edx, edx
je 0x45a79b
mov eax, dword [esp + 0x24]
xor ecx, ecx
call fcn.0041ed00
jmp 0x45a7a2
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x2c]
mov edx, esi
mov esi, dword [esp + 0x28]
lea ecx, [edx + edx*4]
lea edx, [eax + ecx*4 - 0x14]
test eax, eax
cmove edx, eax
mov dword [esi + 0x14], edx
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x2c], edx
call fcn.004384d0
mov edx, dword [esp + 0x2c]
xor ecx, ecx
test eax, eax
cmovne edx, ecx
jmp 0x459569
xor edx, edx
jmp 0x45a7b7
xor edx, edx
jmp 0x45a6fb
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x38]
mov ecx, dword [ecx]
cmp ebx, dword [ecx]
jge 0x4591eb
mov eax, ebx
lea edx, [eax + eax*4]
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx + edx*4]
mov dword [esp + 0x28], ecx
test ecx, ecx
je 0x45a8c7
mov edx, dword [ecx + 0x14]
test edx, edx
jne 0x45a8a7
movzx eax, byte [ecx]
mov ebx, dword [ecx + 0x28]
test ebx, ebx
je 0x45a83a
cmp eax, 0x3c
je 0x45a84f
cmp eax, 0x84
je 0x45a84f
cmp eax, 0x98
je 0x45a84f
cmp eax, 0x9a
je 0x45a84f
cmp eax, 0x25
je 0x45a846
cmp eax, 0x9d
jne 0x45a8a7
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x45a80b
jmp 0x45a8a7
movsx ecx, word [ecx + 0x1c]
test ecx, ecx
jl 0x45a8a7
mov edx, dword [esp + 0xa4]
mov eax, dword [edx]
mov dword [esp + 0x24], eax
lea edx, [ecx + ecx*2]
mov ecx, ebx
mov ebx, dword [ecx + 0x10]
mov edx, dword [ebx + edx*8 + 0x10]
mov eax, dword [eax + 8]
mov ecx, dword [eax + 0xc]
movzx ebx, byte [ecx + 0x49]
test edx, edx
je 0x45a88b
mov eax, dword [esp + 0x24]
xor ecx, ecx
call fcn.0041ed00
jmp 0x45a892
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x2c]
mov edx, ebx
mov ebx, dword [esp + 0x28]
lea ecx, [edx + edx*4]
lea edx, [eax + ecx*4 - 0x14]
test eax, eax
cmove edx, eax
mov dword [ebx + 0x14], edx
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x2c], edx
call fcn.004384d0
mov edx, dword [esp + 0x2c]
xor ecx, ecx
test eax, eax
cmovne edx, ecx
jmp 0x4591eb
xor edx, edx
jmp 0x45a8a7
xor edx, edx
jmp 0x45a7e2
mov dword [esp + 0xac], ebx
jmp 0x459231
mov dword [esp + 0xa8], esi
mov esi, dword [esp + 0x48]
xor ebx, ebx
mov dword [esp + 0x40], ebp
mov ebp, eax
jmp 0x4590c7
mov eax, 7
add esp, 0xb0
pop ebx
pop ebp
pop esi
pop edi
ret
push edi
push esi
push ebp
push ebx
sub esp, 0xb0
mov dword [esp + 0x94], ecx
mov ebp, edx
mov dword [esp + 0xa4], eax
mov edx, dword [eax]
mov dword [esp + 0x90], edx
mov esi, dword [eax + 0xc]
mov eax, esi
call fcn.00438100
mov dword [esp + 0x88], eax
mov eax, esi
call fcn.00438100
mov dword [esp + 0x98], eax
movzx ebx, byte [ebp + 4]
mov dword [esp + 0x9c], ebx
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x8c], eax
mov edx, dword [ebp + 0x18]
mov dword [esp + 0x40], edx
mov ecx, dword [edx]
mov dword [esp + 0xa8], ecx
cmp ebx, 0x71
jne 0x45a983
xor ebx, ebx
jmp 0x45aa67
mov eax, dword [esp + 0x90]
movzx ecx, byte [eax + 0x1e]
test ecx, ecx
je 0x45a999
xor ebx, ebx
jmp 0x45aa67
mov edi, 1
xor ebx, ebx
mov dword [esp + 0x48], esi
mov dword [esp + 0x50], ebp
mov esi, dword [esp + 0xa8]
mov ebp, edx
mov eax, dword [esp + 0x50]
mov edx, dword [eax]
cmp edi, dword [edx]
jg 0x45c297
mov edx, dword [ebp + 0xc]
xor eax, eax
test esi, esi
jle 0x45a9e0
mov dword [esp + 0x40], ebp
movzx ebx, word [edx + 0xe]
cmp ebx, edi
je 0x45a9dc
inc eax
add edx, 0x14
cmp eax, esi
jl 0x45a9cc
mov ebp, dword [esp + 0x40]
cmp eax, esi
jne 0x45aa49
xor ebx, ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0xc], ebx
mov eax, dword [esp + 0x90]
mov edx, 0x81
lea ecx, [esp + 0x30]
call fcn.004e34a0
mov ecx, eax
test ecx, ecx
je 0x45c2af
movzx ebx, word [ecx + 2]
or ebx, 0xffff0400
mov word [ecx + 2], bx
mov dword [ecx + 4], edi
mov eax, dword [esp + 0xa4]
mov edx, ebp
call fcn.004f0620
mov ebp, eax
lea edx, [esi + esi*4]
mov eax, dword [ebp + 0xc]
mov word [eax + edx*4 + 0xe], di
inc esi
mov ecx, dword [esp + 0x90]
movzx ecx, byte [ecx + 0x1e]
inc edi
test ecx, ecx
je 0x45a9b1
mov dword [esp + 0xa8], esi
mov dword [esp + 0x40], ebp
xor ebx, ebx
mov esi, dword [esp + 0x48]
mov ebp, dword [esp + 0x50]
mov ecx, dword [esp + 0xa8]
lea edx, [ecx*4]
mov eax, dword [esp + 0x90]
call fcn.004a76c0
mov dword [esp + 0xa0], eax
cmp dword [esp + 0xa0], 0
je 0x45c28b
mov eax, dword [esp + 0x40]
mov edx, dword [eax + 0xc]
cmp dword [esp + 0xa8], 0
jle 0x45aad0
mov eax, ebx
mov ebx, dword [esp + 0xa0]
mov edi, dword [esp + 0xa8]
movzx ecx, word [edx + 0xe]
dec ecx
mov dword [ebx + eax*4], ecx
inc eax
add edx, 0x14
cmp eax, edi
jl 0x45aab7
mov dword [esp + 0xa8], edi
xor ebx, ebx
mov ecx, dword [esp + 0xa8]
lea edx, [ecx + ecx*4 + 0x10]
mov eax, dword [esp + 0x90]
call fcn.004a76c0
mov dword [esp + 0xac], eax
cmp dword [esp + 0xac], 0
je 0x45abcd
mov ecx, eax
mov edx, dword [esp + 0xa8]
lea eax, [ecx + edx*4 + 0xc]
mov dword [ecx + 8], eax
mov word [ecx + 6], dx
mov eax, dword [esp + 0x90]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0xc]
movzx eax, byte [eax + 0x49]
mov byte [ecx + 4], al
test edx, edx
jle 0x45abcd
mov edi, ebx
mov dword [esp + 0x48], esi
mov dword [esp + 0x50], ebp
lea esi, [edi + edi*4]
mov ebp, dword [esp + 0x40]
mov eax, dword [ebp + 0xc]
mov ebp, dword [eax + esi*4]
movzx edx, word [ebp + 2]
test dh, 1
je 0x45ab51
mov ebx, dword [ebp + 0x14]
jmp 0x45ab98
mov eax, dword [esp + 0xa0]
mov edx, dword [eax + edi*4]
mov dword [esp + 0x38], edx
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx + 0x1c]
test edx, edx
je 0x45c284
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x38]
call fcn.0045ce90
mov ebx, eax
test ebx, ebx
je 0x45c18a
movzx eax, word [ebp + 2]
or eax, 0xffff0100
mov word [ebp + 2], ax
mov dword [ebp + 0x14], ebx
mov eax, dword [esp + 0xac]
mov dword [eax + edi*4 + 0xc], ebx
mov ebp, dword [esp + 0x40]
mov edx, dword [ebp + 0xc]
mov ebx, dword [eax + 8]
movzx ecx, byte [edx + esi*4 + 0xc]
mov byte [ebx + edi], cl
inc edi
cmp edi, dword [esp + 0xa8]
jl 0x45ab36
xor ebx, ebx
mov esi, dword [esp + 0x48]
mov ebp, dword [esp + 0x50]
mov edx, dword [esp + 0x40]
mov dword [ebp + 0x18], edx
mov eax, dword [esp + 0xa4]
mov edi, dword [eax]
test edx, edx
je 0x45adb3
test edi, edi
je 0x45ac43
movzx eax, byte [edi + 0x1e]
test eax, eax
jne 0x45adb3
movzx eax, byte [edi + 0xe2]
test eax, eax
je 0x45ac43
movzx eax, word [edi + 0xe0]
cmp eax, 0x10
jl 0x45ac43
mov eax, dword [edi + 0xec]
mov dword [esp + 0x24], eax
test eax, eax
je 0x45ac43
mov edx, dword [eax]
mov dword [edi + 0xec], edx
mov eax, dword [edi + 0xe4]
inc eax
mov dword [edi + 0xe4], eax
mov ecx, dword [edi + 0xe8]
cmp eax, ecx
jge 0x45ac3b
mov eax, ecx
mov dword [edi + 0xe8], eax
jmp 0x45ac5c
mov eax, 0x10
call fcn.0041ebd4
mov dword [esp + 0x24], eax
cmp dword [esp + 0x24], 0
je 0x45be94
cmp dword [esp + 0x24], 0
je 0x45adb3
mov eax, dword [esp + 0x24]
mov dword [eax + 8], 0
mov edx, dword [esp + 0x40]
mov ecx, dword [edx]
mov dword [eax + 4], ecx
mov dword [eax], ecx
mov ecx, dword [edx]
lea edx, [ecx + ecx*4]
shl edx, 2
mov eax, edi
call fcn.004a76c0
mov edx, eax
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0xc], edx
test edx, edx
je 0x45be86
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx + 0xc]
cmp dword [ecx], 0
jle 0x45adb7
mov ecx, ebx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], edi
mov dword [esp + 0x48], esi
mov dword [esp + 0x50], ebp
mov edi, eax
mov ebx, edx
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x38]
mov edx, dword [edi]
xor ecx, ecx
call fcn.0044cfe0
mov dword [ebx], eax
mov esi, dword [edi + 4]
test esi, esi
je 0x45be7f
mov ebp, esi
movsx ecx, byte [esi]
test ecx, ecx
je 0x45acf7
inc ebp
movsx ecx, byte [ebp]
test ecx, ecx
jne 0x45acee
sub ebp, esi
and ebp, 0x3fffffff
inc ebp
mov eax, dword [esp + 0x38]
mov edx, ebp
call fcn.004a76c0
test eax, eax
je 0x45ad22
push ebp
push esi
push eax
mov dword [esp + 0x34], eax
call fcn.007666b0
mov eax, dword [esp + 0x34]
add esp, 0xc
mov dword [ebx + 4], eax
mov esi, dword [edi + 8]
test esi, esi
je 0x45be78
mov ebp, esi
movsx ecx, byte [esi]
test ecx, ecx
je 0x45ad42
inc ebp
movsx ecx, byte [ebp]
test ecx, ecx
jne 0x45ad39
sub ebp, esi
and ebp, 0x3fffffff
inc ebp
mov eax, dword [esp + 0x38]
mov edx, ebp
call fcn.004a76c0
test eax, eax
je 0x45ad6d
push ebp
push esi
push eax
mov dword [esp + 0x38], eax
call fcn.007666b0
mov eax, dword [esp + 0x38]
add esp, 0xc
mov dword [ebx + 8], eax
movzx ecx, byte [edi + 0xc]
mov byte [ebx + 0xc], cl
mov byte [ebx + 0xd], 0
movzx ebp, word [edi + 0xe]
mov word [ebx + 0xe], bp
movzx esi, word [edi + 0x10]
mov word [ebx + 0x10], si
mov ecx, dword [esp + 0x3c]
inc ecx
mov dword [esp + 0x3c], ecx
add ebx, 0x14
add edi, 0x14
mov ebp, dword [esp + 0x40]
cmp ecx, dword [ebp]
jl 0x45acc3
xor ebx, ebx
mov esi, dword [esp + 0x48]
mov ebp, dword [esp + 0x50]
jmp 0x45adb7
mov dword [esp + 0x24], ebx
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x24]
mov dword [edx + 0x18], eax
cmp dword [esp + 0x9c], 0x71
jne 0x45addc
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
jmp 0x45af1e
mov ecx, dword [ebp]
mov eax, dword [ecx]
mov dword [esp + 0x38], eax
lea ecx, [eax + 1]
mov edx, dword [esp + 0xa4]
mov edx, dword [edx + 0x38]
cmp ecx, edx
jg 0x45ae18
mov eax, dword [esp + 0xa4]
mov ebx, dword [eax + 0x3c]
mov dword [esp + 0x5c], ebx
mov edi, dword [esp + 0x38]
lea ebx, [ebx + edi + 1]
mov dword [eax + 0x3c], ebx
sub edx, ecx
mov dword [eax + 0x38], edx
xor ebx, ebx
jmp 0x45ae34
mov eax, dword [esp + 0xa4]
mov ecx, dword [eax + 0x48]
lea edx, [ecx + 1]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x38]
lea edx, [ecx + edx + 1]
mov dword [eax + 0x48], edx
mov eax, dword [esi + 0xc]
mov edi, eax
cmp eax, dword [esi + 0x10]
jl 0x45ae4c
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x45ae79
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
lea ecx, [edi + edi*4]
mov edx, dword [esi + 0x14]
mov byte [edx + ecx*4], 7
mov byte [edx + ecx*4 + 3], bl
mov dword [edx + ecx*4 + 4], ebx
mov eax, dword [esp + 0x5c]
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov ecx, dword [esp + 0x38]
lea edi, [ecx + ecx*4 + 0x10]
mov eax, dword [esp + 0x90]
mov edx, edi
call fcn.004a76c0
mov dword [esp + 0x58], eax
cmp dword [esp + 0x58], 0
je 0x45aeae
push edi
push 0
push dword [esp + 0x60]
call fcn.00766740
add esp, 0xc
cmp dword [esp + 0x58], 0
je 0x45af1e
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x58]
lea eax, [ecx + edx*4 + 0xc]
mov dword [ecx + 8], eax
mov word [ecx + 6], dx
mov eax, dword [esp + 0x90]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0xc]
movzx eax, byte [eax + 0x49]
mov byte [ecx + 4], al
test edx, edx
jle 0x45af1e
mov edi, ebx
mov dword [esp + 0x48], esi
mov ebx, ecx
mov edx, dword [ebp + 0x1c]
test edx, edx
je 0x45c181
mov eax, dword [esp + 0xa4]
mov ecx, edi
call fcn.0045ce90
mov esi, eax
test esi, esi
je 0x45c08c
mov dword [ebx + edi*4 + 0xc], esi
mov eax, dword [ebx + 8]
mov byte [eax + edi], 0
inc edi
cmp edi, dword [esp + 0x38]
jl 0x45aee3
xor ebx, ebx
mov esi, dword [esp + 0x48]
mov dword [ebp + 0x1c], ebx
mov ecx, dword [esp + 0x8c]
mov dword [ecx + 0x24], ebx
mov ecx, dword [ebp + 0x18]
mov eax, dword [esp + 0xa4]
mov edx, dword [eax]
test ecx, ecx
je 0x45b0fd
movzx eax, byte [edx + 0x1e]
test eax, eax
jne 0x45b0fd
mov eax, dword [ecx]
cmp eax, dword [edx + 0x50]
jg 0x45c06e
mov edx, dword [ebp]
mov edi, dword [ecx + 0xc]
mov dword [esp + 0x24], edi
test eax, eax
jle 0x45b0fd
mov edi, ebx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x48], esi
mov dword [esp + 0x50], ebp
mov ebx, dword [esp + 0x24]
movzx edx, word [ebx + 0xe]
test edx, edx
je 0x45b0e7
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
cmp eax, edx
jl 0x45bf2a
lea ecx, [edx + edx*4]
mov dword [esp + 0x40], ecx
mov ebp, dword [ebx]
mov eax, dword [esp + 0x4c]
mov edx, dword [eax + 0xc]
mov eax, dword [edx + ecx*4 - 0x14]
mov dword [esp + 0x44], eax
mov esi, dword [esp + 0xa4]
mov esi, dword [esi]
mov dword [esp + 0x3c], esi
movzx edx, byte [eax]
cmp edx, 0x98
je 0x45bea5
mov dword [esp + 0xc], 0
mov eax, esi
mov edx, dword [esp + 0x44]
xor ecx, ecx
call fcn.0044cfe0
mov dword [esp + 0x2c], eax
mov dword [esp + 0xc], 1
mov esi, dword [esp + 0xa4]
mov eax, dword [esi]
mov edx, 0x18
xor ecx, ecx
call fcn.004e34a0
mov esi, eax
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xa4]
mov eax, dword [eax]
mov edx, esi
mov ecx, dword [esp + 0x2c]
call fcn.004e3960
test esi, esi
je 0x45b0e1
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0xc]
mov edx, dword [esp + 0x40]
movzx ecx, word [eax + edx*4 - 4]
test ecx, ecx
jne 0x45b06b
mov dword [esp + 0x24], esi
mov edx, dword [esp + 0xa4]
mov eax, dword [edx + 0x1d0]
inc eax
mov dword [edx + 0x1d0], eax
mov edx, dword [esp + 0x4c]
mov ecx, dword [edx + 0xc]
mov esi, dword [esp + 0x40]
mov word [ecx + esi*4 - 4], ax
mov eax, dword [edx + 0xc]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x40]
movzx eax, word [eax + edx*4 - 4]
mov dword [esi + 0x18], eax
movzx eax, word [ebp + 2]
test ah, 1
je 0x45b098
mov eax, dword [ebp + 0x14]
mov dword [esi + 0x14], eax
movzx edx, word [esi + 2]
or edx, 0xffff0100
mov word [esi + 2], dx
movzx eax, word [ebp + 2]
or eax, 0xffff4000
mov word [ebp + 2], ax
mov eax, dword [esp + 0x3c]
mov edx, ebp
call fcn.0044db10
mov eax, 0x30
mov edx, dword [esi + eax - 4]
mov dword [ebp + eax - 4], edx
mov ecx, dword [esi + eax - 8]
mov dword [ebp + eax - 8], ecx
mov edx, dword [esi + eax - 0xc]
mov dword [ebp + eax - 0xc], edx
mov ecx, dword [esi + eax - 0x10]
mov dword [ebp + eax - 0x10], ecx
sub eax, 0x10
jne 0x45b0b1
mov eax, dword [esp + 0x3c]
mov edx, esi
call fcn.004e33d8
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
inc edi
add ebx, 0x14
cmp edi, eax
jl 0x45af7e
xor ebx, ebx
mov esi, dword [esp + 0x48]
mov ebp, dword [esp + 0x50]
mov eax, dword [esp + 0x8c]
cmp dword [eax + 0x1c], 0
je 0x45c04b
mov eax, dword [esp + 0xa4]
mov edx, ebp
mov ecx, dword [esp + 0x88]
call fcn.0045e830
cmp dword [ebp + 0x30], 0
je 0x45b137
cmp dword [esp + 0x9c], 0x71
je 0x45bf51
mov dword [esp + 0x2c], ebx
mov edi, ebx
mov edx, dword [ebp + 0x28]
test edx, edx
je 0x45b150
mov eax, dword [esp + 0x90]
call fcn.0044db10
mov dword [ebp + 0x28], 0
mov edx, dword [ebp + 0x2c]
test edx, edx
je 0x45b16a
mov eax, dword [esp + 0x90]
call fcn.0044db10
mov dword [esp + 0x28], edi
mov dword [ebp + 0x2c], 0
mov edi, dword [esp + 0xa4]
mov eax, dword [edi + 0x48]
lea ecx, [eax + 1]
mov dword [esp + 0x70], ecx
lea edx, [eax + 2]
mov dword [esp + 0x64], edx
lea edx, [eax + 3]
mov dword [esp + 0x68], edx
lea edx, [eax + 4]
mov dword [esp + 0x60], edx
lea edx, [eax + 5]
mov dword [esp + 0x24], edx
add eax, 6
mov dword [esp + 0x84], eax
mov dword [edi + 0x48], eax
lea eax, [esp + 0x38]
mov edx, 0xa
mov edi, dword [esp + 0x28]
call fcn.0058d110
lea eax, [esp + 0x48]
mov edx, 0xa
mov ecx, dword [esp + 0x68]
call fcn.0058d110
mov eax, dword [esi + 0xc]
mov dword [esp + 0x7c], eax
cmp eax, dword [esi + 0x10]
jl 0x45b1ed
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x45b21c
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x7c]
lea ecx, [eax + eax*4]
mov edx, dword [esi + 0x14]
mov byte [edx + ecx*4], 1
mov byte [edx + ecx*4 + 3], bl
mov dword [edx + ecx*4 + 4], ebx
mov dword [edx + ecx*4 + 8], ebx
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
jmp 0x45b224
mov dword [esp + 0x7c], 1
mov eax, dword [esi + 0xc]
mov dword [esp + 0x74], eax
mov edx, dword [esp + 0x8c]
mov dword [edx + 0x30], edi
mov eax, dword [esp + 0xa4]
lea ecx, [esp + 0x38]
call fcn.005671b0
mov eax, dword [esi + 0xc]
mov edi, eax
cmp eax, dword [esi + 0x10]
jl 0x45b25d
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x45b28e
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
lea ecx, [edi + edi*4]
mov edx, dword [esi + 0x14]
mov byte [edx + ecx*4], 7
mov byte [edx + ecx*4 + 3], bl
mov dword [edx + ecx*4 + 4], 1
mov eax, dword [esp + 0x64]
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
mov edi, eax
cmp eax, dword [esi + 0x10]
jl 0x45b2a6
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x45b2d3
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
lea ecx, [edi + edi*4]
mov edx, dword [esi + 0x14]
mov byte [edx + ecx*4], 4
mov byte [edx + ecx*4 + 3], bl
mov eax, dword [esp + 0x70]
mov dword [edx + ecx*4 + 4], eax
mov dword [edx + ecx*4 + 8], ebx
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
mov dword [esp + 0x6c], eax
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x28], eax
mov edi, dword [ebp + 0x34]
mov edx, dword [esp + 0x2c]
mov dword [ebp + 0x30], edx
mov dword [ebp + 0x34], 0
mov eax, dword [esp + 0xa4]
mov edx, ebp
lea ecx, [esp + 0x48]
call fcn.005671b0
mov eax, dword [esp + 0x28]
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x34], edi
mov eax, dword [esi + 0xc]
mov edi, eax
cmp eax, dword [esi + 0x10]
jl 0x45b326
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x45b357
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
lea ecx, [edi + edi*4]
mov edx, dword [esi + 0x14]
mov byte [edx + ecx*4], 7
mov byte [edx + ecx*4 + 3], bl
mov dword [edx + ecx*4 + 4], 1
mov eax, dword [esp + 0x60]
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
mov edi, eax
cmp eax, dword [esi + 0x10]
jl 0x45b36f
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x45b39c
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
lea ecx, [edi + edi*4]
mov edx, dword [esi + 0x14]
mov byte [edx + ecx*4], 4
mov byte [edx + ecx*4 + 3], bl
mov eax, dword [esp + 0x68]
mov dword [edx + ecx*4 + 4], eax
mov dword [edx + ecx*4 + 8], ebx
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esp + 0x94]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0xfffffff0
mov eax, dword [esp + 0x88]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xa4]
mov edx, ebp
lea ecx, [esp + 0x38]
call fcn.0045c2c0
mov dword [esp + 0x78], eax
cmp dword [esp + 0x9c], 0x70
je 0x45b498
cmp dword [esp + 0x9c], 0x71
je 0x45b498
cmp dword [esp + 0x9c], 0x73
je 0x45b421
cmp dword [esp + 0x9c], 0x72
je 0x45b421
mov dword [esp + 0x28], ebx
jmp 0x45b4e7
mov eax, dword [esi + 0xc]
mov dword [esp + 0x2c], eax
cmp eax, dword [esi + 0x10]
jl 0x45b43b
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x45b471
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x2c]
lea eax, [eax + eax*4]
mov ecx, dword [esi + 0x14]
mov byte [ecx + eax*4], 1
mov byte [ecx + eax*4 + 3], bl
mov dword [ecx + eax*4 + 4], ebx
mov edx, dword [esp + 0x88]
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], ebx
mov dword [ecx + eax*4 + 0x10], ebx
mov byte [ecx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
jmp 0x45b479
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x58], eax
mov dword [esp + 0x28], ebx
cmp dword [esp + 0x9c], 0x73
je 0x45b748
jmp 0x45b619
mov eax, dword [esp + 0x94]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0xffffffef
mov eax, dword [esp + 0x88]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xa4]
mov edx, ebp
lea ecx, [esp + 0x48]
call fcn.0045c2c0
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x58], eax
cmp eax, dword [esi + 0x10]
jl 0x45b501
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x45b53b
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x58]
lea edi, [eax + eax*4]
mov eax, dword [esi + 0x14]
mov byte [eax + edi*4], 0x1a
mov byte [eax + edi*4 + 3], bl
mov edx, dword [esp + 0x60]
mov dword [eax + edi*4 + 4], edx
mov ecx, dword [esp + 0x88]
mov dword [eax + edi*4 + 8], ecx
mov dword [eax + edi*4 + 0xc], ebx
mov dword [eax + edi*4 + 0x10], ebx
mov byte [eax + edi*4 + 1], bl
mov byte [esi + 0x62], bl
jmp 0x45b543
mov dword [esp + 0x58], 1
mov eax, dword [esi + 0xc]
mov edi, eax
cmp eax, dword [esi + 0x10]
jl 0x45b55b
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x45b58f
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
lea edi, [edi + edi*4]
mov ecx, dword [esi + 0x14]
mov byte [ecx + edi*4], 2
mov byte [ecx + edi*4 + 3], bl
mov eax, dword [esp + 0x84]
mov dword [ecx + edi*4 + 4], eax
mov edx, dword [esp + 0x28]
mov dword [ecx + edi*4 + 8], edx
mov dword [ecx + edi*4 + 0xc], ebx
mov dword [ecx + edi*4 + 0x10], ebx
mov byte [ecx + edi*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
mov edi, eax
cmp eax, dword [esi + 0x10]
jl 0x45b5a7
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x45b5d4
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
lea ecx, [edi + edi*4]
mov edx, dword [esi + 0x14]
mov byte [edx + ecx*4], 4
mov byte [edx + ecx*4 + 3], bl
mov eax, dword [esp + 0x68]
mov dword [edx + ecx*4 + 4], eax
mov dword [edx + ecx*4 + 8], ebx
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
mov edi, eax
cmp eax, dword [esi + 0x10]
jl 0x45b5ec
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x45b619
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
lea ecx, [edi + edi*4]
mov edx, dword [esi + 0x14]
mov byte [edx + ecx*4], 1
mov byte [edx + ecx*4 + 3], bl
mov dword [edx + ecx*4 + 4], ebx
mov eax, dword [esp + 0x58]
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
mov dword [esp + 0x2c], eax
cmp eax, dword [esi + 0x10]
jl 0x45b633
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x45b66d
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x2c]
lea edi, [eax + eax*4]
mov eax, dword [esi + 0x14]
mov byte [eax + edi*4], 0x1a
mov byte [eax + edi*4 + 3], bl
mov edx, dword [esp + 0x64]
mov dword [eax + edi*4 + 4], edx
mov ecx, dword [esp + 0x88]
mov dword [eax + edi*4 + 8], ecx
mov dword [eax + edi*4 + 0xc], ebx
mov dword [eax + edi*4 + 0x10], ebx
mov byte [eax + edi*4 + 1], bl
mov byte [esi + 0x62], bl
jmp 0x45b675
mov dword [esp + 0x2c], 1
mov eax, dword [esi + 0xc]
mov edi, eax
cmp eax, dword [esi + 0x10]
jl 0x45b68d
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x45b6be
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
lea edi, [edi + edi*4]
mov ecx, dword [esi + 0x14]
mov byte [ecx + edi*4], 2
mov byte [ecx + edi*4 + 3], bl
mov eax, dword [esp + 0x24]
mov dword [ecx + edi*4 + 4], eax
mov edx, dword [esp + 0x78]
mov dword [ecx + edi*4 + 8], edx
mov dword [ecx + edi*4 + 0xc], ebx
mov dword [ecx + edi*4 + 0x10], ebx
mov byte [ecx + edi*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
mov edi, eax
cmp eax, dword [esi + 0x10]
jl 0x45b6d6
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x45b703
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
lea ecx, [edi + edi*4]
mov edx, dword [esi + 0x14]
mov byte [edx + ecx*4], 4
mov byte [edx + ecx*4 + 3], bl
mov eax, dword [esp + 0x70]
mov dword [edx + ecx*4 + 4], eax
mov dword [edx + ecx*4 + 8], ebx
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
mov edi, eax
cmp eax, dword [esi + 0x10]
jl 0x45b71b
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x45b748
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
lea ecx, [edi + edi*4]
mov edx, dword [esi + 0x14]
mov byte [edx + ecx*4], 1
mov byte [edx + ecx*4 + 3], bl
mov dword [edx + ecx*4 + 4], ebx
mov eax, dword [esp + 0x2c]
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
mov edi, eax
cmp eax, dword [esi + 0x10]
jl 0x45b760
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x45b793
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
lea eax, [edi + edi*4]
mov edx, dword [esi + 0x14]
mov byte [edx + eax*4], 2
mov byte [edx + eax*4 + 3], bl
mov ecx, dword [esp + 0x24]
mov dword [edx + eax*4 + 4], ecx
mov ecx, dword [esp + 0x78]
mov dword [edx + eax*4 + 8], ecx
mov dword [edx + eax*4 + 0xc], ebx
mov dword [edx + eax*4 + 0x10], ebx
mov byte [edx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
jmp 0x45b798
mov edi, 1
mov dword [esp + 0x78], edi
mov eax, dword [esi + 0xc]
mov edx, eax
cmp eax, dword [esi + 0x10]
jl 0x45b7bc
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x45b7e9
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
lea ecx, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + ecx*4], 4
mov byte [edx + ecx*4 + 3], bl
mov eax, dword [esp + 0x70]
mov dword [edx + ecx*4 + 4], eax
mov dword [edx + ecx*4 + 8], ebx
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
mov edx, eax
cmp eax, dword [esi + 0x10]
jl 0x45b809
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x45b83a
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
lea eax, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + eax*4], 0x1a
mov byte [edx + eax*4 + 3], bl
mov ecx, dword [esp + 0x64]
mov dword [edx + eax*4 + 4], ecx
mov ecx, dword [esp + 0x58]
mov dword [edx + eax*4 + 8], ecx
mov dword [edx + eax*4 + 0xc], ebx
mov dword [edx + eax*4 + 0x10], ebx
mov byte [edx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
mov edx, eax
cmp eax, dword [esi + 0x10]
jl 0x45b85a
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x45b88a
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
lea ecx, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + ecx*4], 1
mov byte [edx + ecx*4 + 3], bl
mov dword [edx + ecx*4 + 4], ebx
mov eax, dword [esp + 0x98]
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
cmp dword [esp + 0x9c], 0x71
jne 0x45b8a3
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x80], ecx
jmp 0x45b9cf
mov eax, dword [esi + 0xc]
mov dword [esp + 0x80], eax
cmp dword [esp + 0x9c], 0x73
jne 0x45b8ca
lea eax, [edi + 1]
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x80]
jmp 0x45ba21
mov edi, eax
cmp edi, dword [esi + 0x10]
jl 0x45b8e6
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x45b915
mov eax, dword [esi + 0xc]
mov dword [esp + 0x80], eax
inc eax
mov dword [esi + 0xc], eax
lea eax, [edi + edi*4]
mov ecx, dword [esi + 0x14]
mov byte [ecx + eax*4], 4
mov byte [ecx + eax*4 + 3], bl
mov edx, dword [esp + 0x70]
mov dword [ecx + eax*4 + 4], edx
mov dword [ecx + eax*4 + 8], ebx
mov dword [ecx + eax*4 + 0xc], ebx
mov dword [ecx + eax*4 + 0x10], ebx
mov byte [ecx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
jmp 0x45b91a
mov edi, 1
mov eax, dword [esi + 0xc]
mov edx, eax
cmp eax, dword [esi + 0x10]
jl 0x45b93a
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x45b96b
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
lea eax, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + eax*4], 0x1a
mov byte [edx + eax*4 + 3], bl
mov ecx, dword [esp + 0x64]
mov dword [edx + eax*4 + 4], ecx
mov ecx, dword [esp + 0x58]
mov dword [edx + eax*4 + 8], ecx
mov dword [edx + eax*4 + 0xc], ebx
mov dword [edx + eax*4 + 0x10], ebx
mov byte [edx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
mov edx, eax
cmp eax, dword [esi + 0x10]
jl 0x45b98b
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x45b9bb
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
lea ecx, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + ecx*4], 1
mov byte [edx + ecx*4 + 3], bl
mov dword [edx + ecx*4 + 4], ebx
mov eax, dword [esp + 0x98]
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x80], ecx
cmp dword [esp + 0x9c], 0x70
jne 0x45ba21
mov dword [esp + 0x24], ecx
cmp ecx, dword [esi + 0x10]
jl 0x45b9e6
mov eax, esi
call fcn.0045ce30
mov ecx, dword [esi + 0xc]
test eax, eax
jne 0x45ba21
inc ecx
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x24]
lea eax, [ecx + ecx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + eax*4], 2
mov byte [edx + eax*4 + 3], bl
mov ecx, dword [esp + 0x84]
mov dword [edx + eax*4 + 4], ecx
mov ecx, dword [esp + 0x28]
mov dword [edx + eax*4 + 8], ecx
mov dword [edx + eax*4 + 0xc], ebx
mov dword [edx + eax*4 + 0x10], ebx
mov byte [edx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
mov ecx, dword [esi + 0xc]
mov edx, ecx
cmp ecx, dword [esi + 0x10]
jl 0x45ba3e
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x45ba6b
mov ecx, dword [esi + 0xc]
inc ecx
mov dword [esi + 0xc], ecx
lea ecx, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + ecx*4], 4
mov byte [edx + ecx*4 + 3], bl
mov eax, dword [esp + 0x68]
mov dword [edx + ecx*4 + 4], eax
mov dword [edx + ecx*4 + 8], ebx
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
mov edx, eax
cmp eax, dword [esi + 0x10]
jl 0x45ba8b
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x45babc
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
lea eax, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + eax*4], 0x1a
mov byte [edx + eax*4 + 3], bl
mov ecx, dword [esp + 0x60]
mov dword [edx + eax*4 + 4], ecx
mov ecx, dword [esp + 0x2c]
mov dword [edx + eax*4 + 8], ecx
mov dword [edx + eax*4 + 0xc], ebx
mov dword [edx + eax*4 + 0x10], ebx
mov byte [edx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
mov edx, eax
cmp eax, dword [esi + 0x10]
jl 0x45badc
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x45bb0c
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
lea ecx, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + ecx*4], 1
mov byte [edx + ecx*4 + 3], bl
mov dword [edx + ecx*4 + 4], ebx
mov eax, dword [esp + 0x98]
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
cmp eax, dword [esp + 0x7c]
jle 0x45bb26
mov edx, dword [esp + 0x7c]
lea edx, [edx + edx*4]
mov ecx, dword [esi + 0x14]
mov dword [ecx + edx*4 + 8], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x24], eax
cmp eax, dword [esi + 0x10]
jl 0x45bb3d
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x45bb6e
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x24]
lea eax, [eax + eax*4]
mov ecx, dword [esi + 0x14]
mov byte [ecx + eax*4], 7
mov byte [ecx + eax*4 + 3], bl
mov dword [ecx + eax*4 + 4], ebx
mov edx, dword [esp + 0x64]
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], ebx
mov dword [ecx + eax*4 + 0x10], ebx
mov byte [ecx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
mov edx, eax
cmp eax, dword [esi + 0x10]
jl 0x45bb8e
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x45bbbb
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
lea ecx, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + ecx*4], 7
mov byte [edx + ecx*4 + 3], bl
mov dword [edx + ecx*4 + 4], ebx
mov eax, dword [esp + 0x60]
mov dword [edx + ecx*4 + 8], eax
mov dword [edx + ecx*4 + 0xc], ebx
mov dword [edx + ecx*4 + 0x10], ebx
mov byte [edx + ecx*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
mov edx, eax
cmp eax, dword [esi + 0x10]
jl 0x45bbdb
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x45bc0c
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
lea eax, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + eax*4], 2
mov byte [edx + eax*4 + 3], bl
mov ecx, dword [esp + 0x70]
mov dword [edx + eax*4 + 4], ecx
mov ecx, dword [esp + 0x74]
mov dword [edx + eax*4 + 8], ecx
mov dword [edx + eax*4 + 0xc], ebx
mov dword [edx + eax*4 + 0x10], ebx
mov byte [edx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
mov edx, eax
cmp eax, dword [esi + 0x10]
jl 0x45bc2c
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x45bc5d
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
lea eax, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + eax*4], 2
mov byte [edx + eax*4 + 3], bl
mov ecx, dword [esp + 0x68]
mov dword [edx + eax*4 + 4], ecx
mov ecx, dword [esp + 0x6c]
mov dword [edx + eax*4 + 8], ecx
mov dword [edx + eax*4 + 0xc], ebx
mov dword [edx + eax*4 + 0x10], ebx
mov byte [edx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
mov edx, eax
cmp eax, dword [esi + 0x10]
jl 0x45bc7d
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x45bcae
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
lea eax, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + eax*4], 0x1a
mov byte [edx + eax*4 + 3], bl
mov ecx, dword [esp + 0x64]
mov dword [edx + eax*4 + 4], ecx
mov ecx, dword [esp + 0x58]
mov dword [edx + eax*4 + 8], ecx
mov dword [edx + eax*4 + 0xc], ebx
mov dword [edx + eax*4 + 0x10], ebx
mov byte [edx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
mov edx, eax
cmp eax, dword [esi + 0x10]
jl 0x45bcce
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x45bcff
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
lea eax, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + eax*4], 0x1a
mov byte [edx + eax*4 + 3], bl
mov ecx, dword [esp + 0x60]
mov dword [edx + eax*4 + 4], ecx
mov ecx, dword [esp + 0x2c]
mov dword [edx + eax*4 + 8], ecx
mov dword [edx + eax*4 + 0xc], ebx
mov dword [edx + eax*4 + 0x10], ebx
mov byte [edx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esp + 0x98]
shl eax, 2
neg eax
mov dword [esp + 0x98], eax
mov edx, dword [esi + 0x20]
test edx, edx
je 0x45bd27
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x98]
mov dword [edx + ecx - 4], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebx
mov eax, esi
mov edx, 0x17
xor ecx, ecx
call fcn.004dcdf0
mov edx, eax
mov dword [esp + 0xc], 0xfffffff1
mov eax, esi
mov ecx, dword [esp + 0xa0]
call fcn.004d9420
mov eax, dword [esp + 0x50]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x10], eax
mov eax, esi
mov edx, 0x18
mov ecx, dword [esp + 0x40]
call fcn.004dcdf0
mov edx, eax
mov dword [esp + 0xc], 0xfffffff0
mov eax, esi
mov ecx, dword [esp + 0xac]
call fcn.004d9420
mov eax, dword [esi + 0xc]
mov edx, eax
cmp eax, dword [esi + 0x10]
jl 0x45bdb0
mov eax, esi
mov dword [esp + 0x24], edx
call fcn.0045ce30
mov edx, dword [esp + 0x24]
test eax, eax
jne 0x45bde4
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
lea eax, [edx + edx*4]
mov edx, dword [esi + 0x14]
mov byte [edx + eax*4], 0x19
mov byte [edx + eax*4 + 3], bl
mov ecx, dword [esp + 0x78]
mov dword [edx + eax*4 + 4], ecx
mov dword [edx + eax*4 + 8], edi
mov ecx, dword [esp + 0x80]
mov dword [edx + eax*4 + 0xc], ecx
mov dword [edx + eax*4 + 0x10], ebx
mov byte [edx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
cmp dword [esp + 0x5c], 0
je 0x45be03
mov ecx, dword [esp + 0xa8]
inc ecx
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0x5c]
call fcn.00438f70
mov eax, dword [esp + 0x88]
shl eax, 2
neg eax
mov dword [esp + 0x88], eax
mov edx, dword [esi + 0x20]
test edx, edx
je 0x45be2b
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x88]
mov dword [edx + ecx - 4], eax
mov eax, dword [esp + 0x94]
movzx edx, byte [eax]
cmp edx, 5
je 0x45c01f
mov esi, dword [ebp + 0x1c]
test esi, esi
je 0x45be61
mov eax, dword [esp + 0x90]
mov edx, esi
call fcn.004ce330
mov eax, dword [esp + 0x90]
mov edx, esi
call fcn.004e33d8
mov edx, dword [esp + 0x8c]
mov dword [ebp + 0x1c], edx
xor eax, eax
add esp, 0xb0
pop ebx
pop ebp
pop esi
pop edi
ret
xor eax, eax
jmp 0x45ad6d
xor eax, eax
jmp 0x45ad22
mov eax, edi
mov edx, ecx
call fcn.004e33d8
jmp 0x45adb3
test edi, edi
je 0x45ac5c
mov byte [edi + 0x1e], 1
jmp 0x45ac5c
movzx edx, word [eax + 2]
and edx, 0x400
cmp edx, 0x400
je 0x45bf06
mov edx, dword [eax + 4]
mov dword [esp + 0x28], edx
test edx, edx
je 0x45bf06
xor eax, eax
mov edx, dword [esp + 0x44]
mov dword [edx + 4], eax
mov dword [esp + 0xc], eax
mov eax, esi
xor ecx, ecx
call fcn.0044cfe0
mov esi, eax
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x44]
mov dword [edx + 4], eax
test esi, esi
je 0x45b0e1
or byte [esi + 0x22], 1
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
call fcn.004c3590
mov dword [esi + 4], eax
jmp 0x45b077
mov dword [esp + 0xc], 0
mov eax, esi
mov edx, dword [esp + 0x44]
xor ecx, ecx
call fcn.0044cfe0
mov esi, eax
test esi, esi
je 0x45b0e1
jmp 0x45b077
xor ebx, ebx
mov esi, dword [esp + 0x48]
mov ebp, dword [esp + 0x50]
inc edi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xa4]
mov edx, str.ORDER
mov ecx, edi
call fcn.00588640
jmp 0x45b0fd
mov edx, dword [esp + 0xa4]
mov eax, dword [edx + 0x48]
lea edi, [eax + 1]
add eax, 2
mov dword [esp + 0x2c], eax
mov dword [edx + 0x48], eax
mov ecx, dword [ebp + 0x34]
mov dword [esp + 0x28], ecx
test ecx, ecx
je 0x45bf79
inc dword [esp + 0x28]
jmp 0x45bf80
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x24], eax
cmp eax, dword [esi + 0x10]
jl 0x45bf9a
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x45bfcb
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x24]
lea eax, [eax + eax*4]
mov ecx, dword [esi + 0x14]
mov byte [ecx + eax*4], 0xe
mov byte [ecx + eax*4 + 3], bl
mov edx, dword [esp + 0x28]
mov dword [ecx + eax*4 + 4], edx
mov dword [ecx + eax*4 + 8], edi
mov dword [ecx + eax*4 + 0xc], ebx
mov dword [ecx + eax*4 + 0x10], ebx
mov byte [ecx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
mov eax, dword [esi + 0xc]
mov dword [esp + 0x24], eax
cmp eax, dword [esi + 0x10]
jl 0x45bfe9
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x45b13d
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x24]
lea eax, [eax + eax*4]
mov ecx, dword [esi + 0x14]
mov byte [ecx + eax*4], 0xe
mov byte [ecx + eax*4 + 3], bl
mov dword [ecx + eax*4 + 4], edi
mov edx, dword [esp + 0x2c]
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], ebx
mov dword [ecx + eax*4 + 0x10], ebx
mov byte [ecx + eax*4 + 1], bl
mov byte [esi + 0x62], bl
jmp 0x45b13d
mov ecx, dword [esp + 0x8c]
mov eax, dword [ecx + 0x1c]
test eax, eax
je 0x45c036
mov ecx, eax
mov eax, dword [eax + 0x1c]
test eax, eax
jne 0x45c02d
mov eax, dword [esp + 0xa4]
xor edx, edx
mov ecx, dword [ecx]
call fcn.0045d610
jmp 0x45be3e
mov dword [esp + 0xc], str.ORDER
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0x8c]
mov ecx, dword [edx + 0x18]
call fcn.0045d0b0
jmp 0x45b10e
push str.ORDER
push str.too_many_terms_in__s_BY_clause
push dword [esp + 0xac]
call fcn.005860f0
add esp, 0xc
jmp 0x45b0fd
mov edx, dword [ebp]
cmp edi, dword [edx]
jge 0x45af06
lea eax, [edi + edi*4]
mov edx, dword [edx + 0xc]
mov eax, dword [edx + eax*4]
mov dword [esp + 0x2c], eax
test eax, eax
je 0x45c17b
mov esi, dword [eax + 0x14]
test esi, esi
jne 0x45c155
movzx ecx, byte [eax]
mov edx, dword [eax + 0x28]
test edx, edx
je 0x45c0e2
cmp ecx, 0x3c
je 0x45c175
cmp ecx, 0x84
je 0x45c0f8
cmp ecx, 0x98
je 0x45c0f8
cmp ecx, 0x9a
je 0x45c0f8
cmp ecx, 0x25
je 0x45c0ef
cmp ecx, 0x9d
jne 0x45c155
mov eax, dword [eax + 8]
test eax, eax
jne 0x45c0ac
jmp 0x45c155
mov dword [esp + 0x24], edx
movsx ecx, word [eax + 0x1c]
test ecx, ecx
jl 0x45c155
mov edx, dword [esp + 0xa4]
mov eax, dword [edx]
mov dword [esp + 0x28], eax
lea edx, [ecx + ecx*2]
mov ecx, dword [esp + 0x24]
mov esi, dword [ecx + 0x10]
mov edx, dword [esi + edx*8 + 0x10]
mov eax, dword [eax + 8]
mov ecx, dword [eax + 0xc]
movzx esi, byte [ecx + 0x49]
test edx, edx
je 0x45c13a
mov eax, dword [esp + 0x28]
xor ecx, ecx
call fcn.0041ed00
jmp 0x45c141
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x2c]
lea edx, [esi + esi*4]
lea esi, [eax + edx*4 - 0x14]
test eax, eax
jne 0x45c14e
mov esi, eax
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 0x14], esi
mov eax, dword [esp + 0xa4]
mov edx, esi
call fcn.004384d0
test eax, eax
je 0x45af06
mov esi, 0
jmp 0x45af06
mov dword [esp + 0x24], edx
jmp 0x45c0fc
xor eax, eax
xor esi, esi
jmp 0x45c155
xor eax, eax
xor esi, esi
jmp 0x45c08c
mov eax, dword [esp + 0x50]
mov eax, dword [eax]
mov edx, dword [esp + 0x38]
cmp edx, dword [eax]
jge 0x45ab88
lea ecx, [edx + edx*4]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x2c], eax
test eax, eax
je 0x45c280
mov ebx, dword [eax + 0x14]
test ebx, ebx
jne 0x45c25a
movzx ecx, byte [eax]
mov edx, dword [eax + 0x28]
test edx, edx
je 0x45c1e7
cmp ecx, 0x3c
je 0x45c27a
cmp ecx, 0x84
je 0x45c1fd
cmp ecx, 0x98
je 0x45c1fd
cmp ecx, 0x9a
je 0x45c1fd
cmp ecx, 0x25
je 0x45c1f4
cmp ecx, 0x9d
jne 0x45c25a
mov eax, dword [eax + 8]
test eax, eax
jne 0x45c1b1
jmp 0x45c25a
mov dword [esp + 0x24], edx
movsx ecx, word [eax + 0x1c]
test ecx, ecx
jl 0x45c25a
mov edx, dword [esp + 0xa4]
mov eax, dword [edx]
mov dword [esp + 0x28], eax
lea edx, [ecx + ecx*2]
mov ecx, dword [esp + 0x24]
mov ebx, dword [ecx + 0x10]
mov edx, dword [ebx + edx*8 + 0x10]
mov eax, dword [eax + 8]
mov ecx, dword [eax + 0xc]
movzx ebx, byte [ecx + 0x49]
test edx, edx
je 0x45c23f
mov eax, dword [esp + 0x28]
xor ecx, ecx
call fcn.0041ed00
jmp 0x45c246
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x2c]
lea edx, [ebx + ebx*4]
lea ebx, [eax + edx*4 - 0x14]
test eax, eax
jne 0x45c253
mov ebx, eax
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x14], ebx
mov eax, dword [esp + 0xa4]
mov edx, ebx
call fcn.004384d0
test eax, eax
je 0x45ab88
mov ebx, 0
jmp 0x45ab88
mov dword [esp + 0x24], edx
jmp 0x45c201
xor ebx, ebx
jmp 0x45c25a
xor ebx, ebx
jmp 0x45c18a
mov dword [esp + 0xac], ebx
jmp 0x45abcd
mov dword [esp + 0xa8], esi
mov dword [esp + 0x40], ebp
xor ebx, ebx
mov esi, dword [esp + 0x48]
mov ebp, eax
jmp 0x45aa67
mov eax, 7
add esp, 0xb0
pop ebx
pop ebp
pop esi
pop edi
ret