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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x13c
mov dword [ebp - 0x9c], eax
mov eax, dword [eax]
mov dword [ebp - 0xa0], edx
mov dword [ebp - 0xb8], ecx
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0x9c]
call fcn.0042351d
cmp dword [ebp - 0xa0], 0
mov dword [ebp - 0xa4], eax
jne 0x45bcf8
mov eax, 1
jmp 0x45fbb3
mov eax, dword [ebp - 0x9c]
cmp dword [eax + 0x24], 0
jne 0x45bcee
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp], 0
mov edx, 0x15
call fcn.00424ddf
test eax, eax
jne 0x45bcee
mov eax, dword [ebp - 0xb8]
cmp byte [eax], 6
ja 0x45bd78
mov eax, dword [ebp - 0xa0]
mov ecx, dword [eax + 0x30]
test ecx, ecx
je 0x45bd58
mov eax, dword [ebp - 0x9c]
mov edx, fcn.0041670f
call fcn.0041b49a
mov eax, dword [ebp - 0xa0]
mov dword [eax + 0x30], 0
mov eax, dword [ebp - 0xa0]
mov edi, dword [ebp - 0xa0]
mov eax, dword [eax + 4]
mov dword [ebp - 0xa8], eax
and eax, 0xfffffffe
or eax, 0x400000
mov dword [edi + 4], eax
mov eax, dword [ebp - 0x9c]
mov edx, dword [ebp - 0xa0]
xor ecx, ecx
call fcn.0041564f
mov eax, dword [ebp - 0x9c]
cmp dword [eax + 0x24], 0
jne 0x45d1e6
mov eax, dword [ebp - 0xa0]
mov ebx, dword [eax + 4]
test ebx, 0x800000
je 0x45bdf7
mov esi, dword [eax + 0x20]
lea eax, [esi + 8]
mov edx, esi
call fcn.00404e26
test eax, eax
je 0x45bde8
mov eax, dword [esi + 0x14]
test eax, eax
jne 0x45bdc9
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x9c]
mov dword [esp + 4], str.target_object_alias_may_not_appear_in_FROM_clause:__s
mov dword [esp], eax
call fcn.0041ae0a
jmp 0x45d1e6
mov eax, dword [ebp - 0xa0]
and ebx, 0xff7fffff
mov dword [eax + 4], ebx
mov eax, dword [ebp - 0xb8]
cmp byte [eax], 9
jne 0x45be13
mov edx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0x9c]
call fcn.0042a0be
mov eax, dword [ebp - 0xa0]
cmp dword [eax + 0x44], 0
jne 0x45be69
mov eax, dword [ebp - 0xa0]
lea edx, [ebp - 0x48]
mov ecx, 0xc
mov dword [ebp - 0xac], 0
mov edi, edx
mov eax, dword [eax + 0x20]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 4]
and eax, 8
mov dword [ebp - 0xd8], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x48], eax
jmp 0x45c3cc
mov eax, dword [ebp - 0xa0]
cmp dword [eax + 0x34], 0
jne 0x45be1f
mov eax, dword [eax + 4]
mov dword [ebp - 0xa8], eax
and eax, 0x100000
mov dword [ebp - 0xb4], eax
jne 0x45be1f
mov eax, dword [ebp - 0x9c]
cmp byte [eax + 0xd8], 1
ja 0x45be1f
call fcn.0042351d
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0x9c]
xor ecx, ecx
mov edx, 0x40
mov dword [ebp - 0x68], 0
mov eax, dword [eax]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x28]
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xa0]
mov esi, dword [eax + 0x44]
mov eax, dword [eax + 4]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xac]
call fcn.0041b0f8
test eax, eax
mov dword [ebp - 0xa8], eax
jne 0x45bf39
mov eax, dword [ebp - 0xac]
mov edx, 7
call fcn.00401952
jmp 0x45c384
mov eax, dword [ebp - 0xb4]
lea ebx, [ebp - 0x48]
mov ecx, 7
mov edx, dword [ebp - 0xa0]
mov edi, ebx
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x44], 0x41c4e7
mov dword [ebp - 0x40], 0x403eca
mov dword [ebp - 0x48], eax
mov eax, ebx
call fcn.0040d021
mov eax, dword [ebp - 0xa0]
test byte [eax + 4], 8
jne 0x45bf93
mov edx, dword [eax + 0x30]
mov eax, ebx
mov dword [ebp - 0x44], 0x4260bb
mov dword [ebp - 0x40], 0
call fcn.0040d20e
mov eax, dword [ebp - 0xa0]
mov edi, dword [ebp - 0xa0]
xor edx, edx
mov ecx, dword [esi + 8]
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x28], 0
mov dword [eax + 0x2c], 0
mov eax, dword [eax + 4]
mov dword [ebp - 0xb4], eax
and eax, 0xfffffff7
or eax, 0x100000
mov dword [edi + 4], eax
mov eax, dword [ebp - 0x9c]
mov dword [esp], 1
call fcn.00420ff9
mov ecx, dword [esi + 0xc]
mov edx, eax
mov eax, dword [ebp - 0x9c]
mov dword [esp], 1
call fcn.00420ff9
test eax, eax
mov dword [ebp - 0xb4], eax
je 0x45c062
mov eax, dword [ebp - 0xa0]
mov edx, dword [eax + 0x30]
test edx, edx
je 0x45c062
mov edi, dword [ebp - 0xb4]
mov eax, dword [edx]
mov ebx, dword [edi]
cmp eax, ebx
jg 0x45c062
mov dword [edi], eax
or ecx, 0xffffffff
mov eax, edi
call fcn.0042fc83
test eax, eax
jne 0x45c05a
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x30]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xac]
mov dword [esp], eax
call fcn.0041670f
mov eax, dword [ebp - 0xa0]
mov dword [eax + 0x30], 0
mov eax, dword [ebp - 0xb4]
mov dword [eax], ebx
mov eax, dword [ebp - 0x9c]
mov edi, dword [ebp - 0x9c]
lea ebx, [ebp - 0x68]
mov ecx, dword [ebp - 0xbc]
mov edx, esi
mov eax, dword [eax + 0x28]
mov dword [esi + 0x30], eax
add eax, 4
mov dword [edi + 0x28], eax
mov eax, dword [ebp - 0xa8]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x1c]
mov dword [esp], eax
mov eax, edi
call fcn.0040d24d
mov eax, dword [ebp - 0xa8]
mov dword [esp + 8], ebx
mov edx, esi
mov ecx, dword [ebp - 0xbc]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x30]
mov dword [esp], eax
mov eax, dword [ebp - 0x9c]
call fcn.0040d24d
mov edx, dword [ebp - 0x68]
xor eax, eax
test edx, edx
je 0x45c0de
mov eax, dword [edx]
mov dword [esi + 0x4c], eax
mov ecx, dword [esi + 8]
lea edi, [ebp - 0x68]
mov eax, dword [ebp - 0x9c]
mov dword [esp], 0
mov ebx, esi
call fcn.00420ff9
mov dword [ebp - 0x68], eax
mov edx, eax
mov ecx, dword [esi + 0xc]
mov eax, dword [ebp - 0x9c]
mov dword [esp], 0
call fcn.00420ff9
mov dword [ebp - 0x68], eax
mov eax, dword [ebx + 0x48]
mov ecx, dword [eax + 0x14]
mov eax, dword [ebx + 0x2c]
test byte [eax + 6], 0x10
je 0x45c15f
mov eax, dword [ebp - 0xa8]
mov dword [esp], ecx
mov edx, esi
mov ecx, dword [ebp - 0xbc]
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x9c]
call fcn.0040d24d
mov edx, dword [ebp - 0x68]
xor eax, eax
test edx, edx
je 0x45c156
mov eax, dword [edx]
mov dword [ebx + 0x50], eax
mov byte [ebx + 0x60], 1
jmp 0x45c182
mov edx, dword [ebp - 0x68]
xor eax, eax
test edx, edx
je 0x45c16a
mov eax, dword [edx]
mov dword [ebx + 0x50], eax
mov eax, dword [ebp - 0x9c]
mov dword [esp], 0
call fcn.00420ff9
mov dword [ebp - 0x68], eax
mov edx, dword [ebx + 0x28]
test edx, edx
je 0x45c1a9
mov eax, dword [ebp - 0xac]
xor ecx, ecx
call fcn.0041c2c6
mov edx, dword [ebp - 0x68]
mov ecx, eax
mov eax, dword [ebp - 0x9c]
call fcn.00420e1e
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x9c]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
add eax, 2
mov dword [ebx + 0x34], edx
mov dword [ecx + 0x2c], eax
xor ecx, ecx
mov dword [ebx + 0x38], eax
mov eax, dword [ebp - 0xc8]
mov dword [esp], edx
mov edx, 0x4b
call fcn.00423486
mov ebx, dword [ebx + 0x24]
test ebx, ebx
jne 0x45c118
cmp dword [ebp - 0x68], 0
jne 0x45c212
mov eax, dword [ebp - 0xac]
mov ecx, 0x4f2b2f
mov edx, 0x9b
call fcn.0041d367
mov edx, eax
mov eax, dword [ebp - 0x9c]
call fcn.0041d086
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ebp - 0x68]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xdc]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xc0]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xd8]
mov dword [esp], eax
mov eax, dword [ebp - 0x9c]
call fcn.0041d591
mov ebx, eax
mov eax, dword [ebp - 0x9c]
xor ecx, ecx
xor edx, edx
mov dword [esp], 0
call fcn.00426286
mov edi, dword [ebp - 0xa0]
test eax, eax
mov dword [edi + 0x20], eax
je 0x45c346
or byte [eax + 0x30], 8
mov dword [eax + 0x1c], ebx
mov esi, 7
mov edx, dword [edi + 0x20]
mov eax, dword [ebp - 0x9c]
call fcn.004047f2
or dword [ebx + 4], 0x8000040
mov eax, dword [ebp - 0x9c]
mov ecx, 0x40
mov edx, ebx
call fcn.0045bbf0
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xe0]
and eax, 8
or dword [ebx + 4], eax
cmp dword [ebp - 0xb4], 0
je 0x45c35a
mov eax, 0x10
mov edi, dword [ebp - 0xa8]
mov esi, dword [ebp - 0xb4]
mov ecx, eax
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xa8]
lea esi, [ebp - 0x48]
or dword [edi + 0x1c], 0x4000
mov edi, dword [ebp - 0xa0]
mov eax, ecx
mov ecx, 7
mov edx, dword [edi + 0x20]
mov edi, dword [ebp - 0xa8]
mov dword [edx + 0x18], edi
mov edi, esi
mov edx, ebx
rep stosd dword es:[edi], eax
mov eax, esi
mov dword [ebp - 0x44], 0x40e9a7
mov dword [ebp - 0x40], 0x403eb2
mov dword [ebp - 0x3c], 0x403ebf
call fcn.0040d021
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0xa8], eax
jmp 0x45c358
mov eax, dword [ebp - 0xac]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00416616
xor esi, esi
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xa8]
mov edx, fcn.0040b317
cmp byte [eax + 0x57], 0
mov eax, 7
cmovne esi, eax
mov eax, dword [ebp - 0x9c]
call fcn.0041b49a
mov eax, esi
test eax, eax
jne 0x45d1e6
jmp 0x45be1f
mov eax, dword [ebp - 0xa8]
mov esi, dword [ebp - 0xac]
cmp esi, dword [eax]
jge 0x45cf15
imul ebx, dword [ebp - 0xac], 0x48
add ebx, dword [ebp - 0xa8]
mov al, byte [ebx + 0x2c]
mov esi, dword [ebx + 0x1c]
mov edi, dword [ebx + 0x18]
and eax, 0x18
cmp al, 8
je 0x45c3dd
test esi, esi
jne 0x45c42c
inc dword [ebp - 0xac]
mov eax, dword [ebp - 0xa0]
cmp dword [eax + 0x34], 0
je 0x45c391
jmp 0x45f7e9
mov eax, dword [ebp - 0xa0]
mov edx, dword [ebx + 0x34]
mov eax, dword [eax + 0x24]
call fcn.0040d366
test eax, eax
je 0x45c3c2
mov eax, dword [ebp - 0xb0]
test byte [eax + 0x51], 0x20
jne 0x45c3c2
mov eax, dword [ebp - 0xa8]
and byte [ebx + 0x2c], 0xd7
mov edx, dword [ebx + 0x34]
mov al, byte [eax + 0x2c]
mov byte [ebp - 0xb4], al
mov cl, al
mov eax, dword [ebp - 0xa0]
and ecx, 0x40
movzx ecx, cl
mov eax, dword [eax + 0x24]
call fcn.00404bb2
jmp 0x45c3c2
mov edx, dword [esi + 0x1c]
movsx eax, word [edi + 0x22]
mov edx, dword [edx]
cmp eax, edx
je 0x45c462
mov dword [esp + 0x10], edx
mov edx, dword [edi]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x9c]
mov dword [esp + 4], str.expected__d_columns_for__s_but_got__d
mov dword [esp + 0xc], edx
mov dword [esp], eax
call fcn.0041ae0a
jmp 0x45d1e6
mov eax, dword [esi + 4]
test al, 8
jne 0x45c3c6
mov ecx, dword [esi + 0x30]
test ecx, ecx
je 0x45c4c7
mov edi, dword [ebp - 0xa0]
cmp dword [edi + 0x30], 0
jne 0x45c48b
mov edi, dword [ebp - 0xa8]
cmp dword [edi], 1
jle 0x45c4c7
cmp dword [esi + 0x3c], 0
jne 0x45c4c7
test eax, 0x8000000
jne 0x45c4c7
mov eax, dword [ebp - 0xa0]
test byte [eax + 7], 8
jne 0x45c4c7
mov eax, dword [ebp - 0xb0]
test byte [eax + 0x52], 4
jne 0x45c4c7
mov eax, dword [ebp - 0x9c]
mov edx, fcn.0041670f
call fcn.0041b49a
mov dword [esi + 0x30], 0
cmp dword [esi + 0x30], 0
je 0x45c4fb
cmp dword [ebp - 0xac], 0
jne 0x45c4fb
mov eax, dword [ebp - 0xa0]
test byte [eax + 6], 4
je 0x45c4fb
mov eax, dword [ebp - 0xa8]
cmp dword [eax], 1
je 0x45cf06
test byte [eax + 0x74], 0x22
jne 0x45cf06
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax]
test byte [eax + 0x50], 1
mov dword [ebp - 0xb4], eax
jne 0x45cec7
mov eax, dword [ebp - 0xa0]
cmp dword [eax + 0x44], 0
jne 0x45cec7
mov eax, dword [eax + 0x20]
mov dword [ebp - 0xc8], eax
mov edi, dword [ebp - 0xc8]
imul eax, dword [ebp - 0xac], 0x48
mov edi, dword [edi + eax + 0x1c]
cmp dword [edi + 0x44], 0
jne 0x45cec7
mov eax, dword [edi + 0x3c]
test eax, eax
je 0x45c568
mov esi, dword [ebp - 0xa0]
cmp dword [esi + 0x3c], 0
jne 0x45cec7
cmp dword [eax + 0x10], 0
jne 0x45cec7
mov esi, dword [ebp - 0xa0]
mov ebx, dword [esi + 4]
test bh, 1
je 0x45c57e
test eax, eax
jne 0x45cec7
mov edx, dword [edi + 0x20]
mov esi, dword [edx]
test esi, esi
mov dword [ebp - 0xa8], esi
je 0x45cec7
mov esi, dword [edi + 4]
mov ecx, esi
and esi, 1
jne 0x45cec7
test eax, eax
je 0x45c5bf
mov esi, dword [ebp - 0xc8]
cmp dword [esi], 1
jg 0x45cec7
cmp dword [ebp - 0xd8], 0
jne 0x45cec7
mov esi, dword [ebp - 0xa0]
mov esi, dword [esi + 0x30]
test esi, esi
jne 0x45c5d5
cmp dword [ebp - 0xd8], 0
je 0x45c5df
cmp dword [edi + 0x30], 0
jne 0x45cec7
test eax, eax
je 0x45c5fc
mov eax, dword [ebp - 0xa0]
cmp dword [eax + 0x24], 0
jne 0x45cec7
test bl, 1
jne 0x45cec7
test ch, 0x20
jne 0x45cec7
imul eax, dword [ebp - 0xac], 0x48
mov ecx, dword [ebp - 0xc8]
mov al, byte [ecx + eax + 0x2c]
test al, 0x60
je 0x45c651
cmp dword [ebp - 0xa8], 1
jg 0x45cec7
mov ecx, dword [edx + 0x18]
cmp byte [ecx + 0x2b], 1
je 0x45cec7
test bl, 1
jne 0x45cec7
test al, 0x10
jne 0x45cec7
mov dword [ebp - 0xc0], 1
jmp 0x45c65b
mov dword [ebp - 0xc0], 0
cmp dword [ebp - 0xac], 0
jle 0x45c66e
test byte [edx + 0x2c], 0x40
jne 0x45cec7
imul eax, dword [ebp - 0xac], 0x48
add eax, dword [ebp - 0xc8]
test byte [eax + 0x31], 1
je 0x45c68e
mov eax, dword [eax + 0x4c]
cmp byte [eax + 0x12], 0
je 0x45cec7
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xc8]
mov eax, dword [eax + 0x100]
mov dword [ebp - 0xbc], eax
imul eax, dword [ebp - 0xac], 0x48
cmp dword [edi + 0x34], 0
mov eax, dword [ecx + eax + 0x34]
mov dword [ebp - 0xfc], eax
jne 0x45c6c4
xor esi, esi
jmp 0x45c836
cmp dword [edi + 0x30], 0
jne 0x45cec7
cmp dword [ebp - 0xd8], 0
jne 0x45cec7
test bl, 1
jne 0x45cec7
cmp dword [ebp - 0xc0], 0
mov eax, edi
jne 0x45cec7
test byte [eax + 4], 9
jne 0x45cec7
mov edx, dword [eax + 0x34]
test edx, edx
je 0x45c70d
cmp byte [eax], 0x87
jne 0x45cec7
mov ecx, dword [eax + 0x20]
cmp dword [ecx], 0
jle 0x45cec7
cmp dword [eax + 0x44], 0
jne 0x45cec7
cmp dword [ebp - 0xac], 0
jle 0x45c736
test byte [ecx + 0x2c], 0x40
jne 0x45cec7
test edx, edx
je 0x45c73e
mov eax, edx
jmp 0x45c6f3
test esi, esi
je 0x45c75c
mov edx, dword [esi]
xor eax, eax
cmp eax, edx
jge 0x45c75c
imul ecx, eax, 0x14
cmp word [esi + ecx + 0x18], 0
je 0x45cec7
inc eax
jmp 0x45c746
and bh, 0x20
jne 0x45cec7
mov ebx, dword [edi + 0x1c]
mov dword [ebp - 0xa8], 0
mov eax, dword [ebp - 0xa8]
cmp eax, dword [ebx]
jge 0x45c7cb
imul esi, dword [ebp - 0xa8], 0x14
mov eax, dword [ebx + esi + 8]
call fcn.00413c7d
mov edx, dword [edi + 0x34]
mov byte [ebp - 0xdc], al
test edx, edx
je 0x45c7c3
mov eax, dword [edx + 0x1c]
mov dword [ebp - 0xe0], edx
add eax, esi
mov eax, dword [eax + 8]
call fcn.00413c7d
cmp byte [ebp - 0xdc], al
jne 0x45cec7
mov edx, dword [ebp - 0xe0]
mov edx, dword [edx + 0x34]
jmp 0x45c795
inc dword [ebp - 0xa8]
jmp 0x45c772
mov eax, dword [ebp - 0xc8]
cmp dword [eax], 1
jle 0x45c6bd
mov eax, dword [ebp - 0x9c]
cmp dword [eax + 0x68], 0x1f4
jg 0x45cec7
mov eax, dword [ebp - 0xb4]
test byte [eax + 0x52], 0x80
jne 0x45cec7
mov eax, dword [ebp - 0x9c]
mov edx, dword [eax + 0x28]
mov eax, edx
cdq
add eax, 1
adc edx, 0
shld edx, eax, 2
shl eax, 2
mov ecx, edx
mov edx, eax
mov eax, dword [ebp - 0xb4]
call fcn.0041b0f8
test eax, eax
mov esi, eax
je 0x45c836
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax + 0x28]
mov dword [esi], eax
imul eax, dword [ebp - 0xac], 0x48
mov ebx, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0x9c]
mov edx, 0x15
add ebx, eax
mov dword [ebp - 0xe8], eax
mov eax, dword [ebx + 0x10]
mov dword [ecx + 0x100], eax
mov eax, dword [ebp - 0x9c]
xor ecx, ecx
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00424ddf
mov ecx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0x9c]
mov dword [eax + 0x100], ecx
mov eax, dword [ebx + 0x1c]
mov dword [ebp - 0xdc], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xb4]
mov dword [esp], eax
call fcn.0040b317
mov eax, dword [ebx + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xb4]
mov dword [esp], eax
call fcn.0040b317
mov eax, dword [ebx + 0x14]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xb4]
mov dword [esp], eax
call fcn.0040b317
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x1c], 0
mov eax, dword [edi + 0x34]
mov dword [ebp - 0xe0], ebx
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 0
je 0x45ca4a
mov eax, dword [ebp - 0xa0]
xor ecx, ecx
mov eax, dword [eax + 0x30]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0xa0]
mov edi, dword [eax + 0x3c]
mov eax, dword [eax + 0x34]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xe0]
mov dword [eax + 0x18], 0
mov eax, dword [ebp - 0xa0]
mov dword [eax + 0x30], 0
mov dword [eax + 0x34], 0
mov edx, eax
mov dword [eax + 0x3c], 0
mov eax, dword [ebp - 0xb4]
call fcn.0041bedb
mov ebx, eax
mov eax, dword [ebp - 0xa0]
test ebx, ebx
mov dword [eax + 0x3c], edi
mov edi, dword [ebp - 0xe4]
mov byte [eax], 0x87
mov dword [eax + 0x30], edi
mov eax, dword [ebp - 0xe0]
mov edi, dword [ebp - 0xec]
mov dword [eax + 0x18], edi
jne 0x45c9b2
mov eax, dword [ebp - 0xa0]
mov edi, dword [ebp - 0xa8]
mov dword [eax + 0x34], edi
jmp 0x45ca36
mov eax, dword [ebp - 0x9c]
mov edi, dword [ebp - 0x9c]
mov eax, dword [eax + 0x68]
mov dword [ebp - 0xe4], eax
inc eax
test esi, esi
mov dword [edi + 0x68], eax
mov dword [ebx + 0x10], eax
je 0x45ca1a
mov eax, dword [ebp - 0xb4]
cmp byte [eax + 0x57], 0
jne 0x45ca1a
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebx + 0x20]
mov edx, esi
mov dword [esp], eax
mov eax, edi
lea edi, [ebp - 0x68]
call fcn.00404c52
xor eax, eax
mov ecx, 7
mov edx, ebx
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x68]
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x64], 0x417e32
mov dword [ebp - 0x60], 0x403eca
call fcn.0040d021
mov eax, dword [ebp - 0xa8]
test eax, eax
mov dword [ebx + 0x34], eax
je 0x45ca2a
mov dword [eax + 0x38], ebx
mov eax, dword [ebp - 0xa0]
mov dword [ebx + 0x38], eax
mov dword [eax + 0x34], ebx
mov eax, dword [ebp - 0xbc]
mov eax, dword [eax + 0x34]
mov dword [ebp - 0xbc], eax
jmp 0x45c900
mov eax, dword [ebp - 0xb4]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.0040b317
mov eax, dword [ebp - 0xb4]
cmp byte [eax + 0x57], 0
je 0x45ca84
imul eax, dword [ebp - 0xac], 0x48
mov edi, dword [ebp - 0xc8]
mov esi, dword [ebp - 0xdc]
mov dword [edi + eax + 0x1c], esi
jmp 0x45cead
imul eax, dword [ebp - 0xac], 0x48
mov edi, dword [ebp - 0xc8]
mov ecx, dword [edi + eax + 0x18]
test ecx, ecx
je 0x45cad8
mov eax, dword [ecx + 0x18]
cmp eax, 1
jne 0x45cabf
mov eax, dword [ebp - 0x9c]
mov edx, fcn.00416db4
mov eax, dword [eax + 0x78]
test eax, eax
cmove eax, dword [ebp - 0x9c]
call fcn.0041b49a
jmp 0x45cac3
dec eax
mov dword [ecx + 0x18], eax
imul eax, dword [ebp - 0xac], 0x48
mov edi, dword [ebp - 0xc8]
mov dword [edi + eax + 0x18], 0
mov eax, dword [ebp - 0xe8]
or esi, 0xffffffff
add eax, 8
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0xbc], eax
imul eax, dword [ebp - 0xac], 0x48
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0xc8]
add eax, dword [ebp - 0xf0]
mov dword [ebp - 0x108], eax
mov eax, dword [ebp - 0xc8]
mov edi, dword [ebp - 0xf0]
mov byte [ebp - 0xf8], 0
mov al, byte [eax + edi + 0x2c]
mov edi, dword [ebp - 0xa8]
mov byte [ebp - 0xf4], al
and eax, 0x40
cmp dword [ebp - 0xa0], edi
mov byte [ebp - 0x100], al
mov eax, dword [ebp - 0xbc]
mov ebx, dword [eax + 0x20]
mov eax, dword [ebx]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0xc8], eax
jne 0x45cb84
mov eax, dword [ebp - 0x108]
mov al, byte [eax + 0x2c]
mov byte [ebp - 0xf8], al
cmp dword [ebp - 0xe0], 1
jle 0x45cc1c
mov eax, dword [ebp - 0xe0]
mov edx, dword [ebp - 0xc8]
lea ecx, [eax - 1]
mov eax, dword [ebp - 0xac]
inc eax
mov dword [esp], eax
mov eax, dword [ebp - 0x9c]
call fcn.004260ef
test eax, eax
mov dword [ebp - 0xc8], eax
jne 0x45cc0d
lea edi, [ebp - 0x68]
xor eax, eax
mov ecx, 7
mov edx, dword [ebp - 0xdc]
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x64], 0x41c4e7
mov dword [ebp - 0x60], 0x403eca
mov dword [ebp - 0x68], eax
lea eax, [ebp - 0x68]
call fcn.0040d021
mov eax, dword [ebp - 0xdc]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xb4]
mov dword [esp], eax
call fcn.00416616
jmp 0x45cead
mov eax, dword [ebp - 0xa8]
mov edi, dword [ebp - 0xc8]
mov dword [eax + 0x20], edi
lea eax, [ebx + 8]
mov ebx, dword [ebp - 0xc8]
add ebx, dword [ebp - 0xe8]
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xe4], eax
mov edi, dword [ebp - 0xec]
cmp dword [ebp - 0xe0], edi
jle 0x45ccb2
mov eax, dword [ebp - 0xec]
add eax, dword [ebp - 0xac]
mov edi, dword [ebp - 0xc8]
imul eax, eax, 0x48
test byte [edi + eax + 0x31], 4
je 0x45cc73
mov edx, dword [ebx + 0x38]
mov eax, dword [ebp - 0xb4]
call fcn.0040c436
mov eax, 0x12
lea edi, [ebx + 8]
mov esi, dword [ebp - 0xe4]
mov ecx, eax
inc dword [ebp - 0xec]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xe4]
add dword [ebp - 0xe4], 0x48
mov eax, ecx
mov cl, byte [ebp - 0x100]
or byte [ebx + 0x2c], cl
mov ecx, 0x12
mov esi, dword [edi + 0x2c]
add ebx, 0x48
rep stosd dword es:[edi], eax
jmp 0x45cc3b
mov edx, dword [ebp - 0xc8]
add edx, dword [ebp - 0xf0]
mov al, byte [ebp - 0xf4]
or eax, dword [edx + 0x2c]
and eax, 0x40
or eax, dword [ebp - 0xf8]
mov byte [edx + 0x2c], al
mov eax, dword [ebp - 0xbc]
mov eax, dword [eax + 0x30]
test eax, eax
je 0x45cd17
mov edi, dword [ebp - 0xa8]
test byte [edi + 6], 0x40
jne 0x45cd17
mov ecx, dword [eax]
xor edx, edx
cmp edx, ecx
jge 0x45cd01
imul ebx, edx, 0x14
inc edx
mov word [eax + ebx + 0x18], 0
jmp 0x45ccf0
mov edi, dword [ebp - 0xa8]
mov dword [edi + 0x30], eax
mov eax, dword [ebp - 0xbc]
mov dword [eax + 0x30], 0
cmp dword [ebp - 0xc0], 1
mov eax, dword [ebp - 0xbc]
mov ebx, dword [eax + 0x24]
mov dword [eax + 0x24], 0
jne 0x45cd3e
mov ecx, 1
mov edx, esi
mov eax, ebx
call fcn.00404b46
test ebx, ebx
je 0x45cd78
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x45cd6f
mov dword [esp], eax
mov eax, dword [ebp - 0x9c]
mov ecx, ebx
mov edx, 0x2c
call fcn.00425496
mov edi, dword [ebp - 0xa8]
mov dword [edi + 0x24], eax
jmp 0x45cd78
mov eax, dword [ebp - 0xa8]
mov dword [eax + 0x24], ebx
mov eax, dword [ebp - 0xb4]
cmp byte [eax + 0x57], 0
jne 0x45cdd5
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0xfc]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0xbc]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0xbc]
mov edx, dword [eax + 0x34]
test edx, edx
je 0x45cdbf
mov eax, edx
jmp 0x45cdb4
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0xa8]
xor ecx, ecx
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x68]
call fcn.00427ef7
mov eax, dword [ebp - 0xbc]
mov edi, dword [ebp - 0xa8]
mov eax, dword [eax + 4]
mov dword [ebp - 0xe4], eax
and eax, 0x100
or dword [edi + 4], eax
mov eax, dword [ebp - 0xbc]
mov eax, dword [eax + 0x3c]
test eax, eax
je 0x45ce0f
mov dword [edi + 0x3c], eax
mov eax, dword [ebp - 0xbc]
mov dword [eax + 0x3c], 0
mov ebx, dword [ebp - 0xc8]
add ebx, dword [ebp - 0x104]
mov dword [ebp - 0xe4], 0
mov edi, dword [ebp - 0xe4]
cmp dword [ebp - 0xe0], edi
jle 0x45ce7d
cmp dword [ebx + 0x10], 0
je 0x45ce72
lea edi, [ebp - 0x68]
xor eax, eax
mov ecx, 7
mov edx, dword [ebp - 0xa8]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x68]
mov dword [ebp - 0x64], 0x40e13c
mov dword [ebp - 0x60], 0x403eca
mov dword [ebp - 0x50], ebx
mov dword [ebx + 0x38], 0
mov dword [ebx + 0x3c], 0
call fcn.0040d021
inc dword [ebp - 0xe4]
add ebx, 0x48
jmp 0x45ce25
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 0x34]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0xbc]
cmp dword [ebp - 0xa8], 0
mov eax, dword [eax + 0x34]
mov dword [ebp - 0xbc], eax
jne 0x45cb21
jmp 0x45cbbf
mov eax, dword [ebp - 0x9c]
cmp dword [eax + 0x24], 0
jne 0x45d1e6
mov dword [ebp - 0xac], 0xffffffff
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0xb0]
cmp byte [eax + 0x57], 0
jne 0x45d1e6
mov eax, dword [ebp - 0xb8]
cmp byte [eax], 8
jbe 0x45c3c6
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x48], eax
jmp 0x45c3c6
mov dword [ebp - 0xac], 0
jmp 0x45c3c6
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x45cf2b
cmp byte [eax], 0x2c
je 0x45d470
mov eax, dword [ebp - 0xb0]
test dword [eax + 0x50], 0x201
je 0x45d558
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0xac], 0
lea ebx, [eax + 8]
mov eax, dword [ebp - 0xa8]
mov esi, dword [ebp - 0xac]
cmp esi, dword [eax]
jl 0x45d78c
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x28]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 4]
mov edx, eax
and eax, 9
and edx, 1
dec eax
mov byte [ebp - 0x90], dl
je 0x45dd92
mov edx, dword [ebp - 0x48]
test edx, edx
je 0x45ddf7
mov eax, dword [ebp - 0xbc]
xor ecx, ecx
mov eax, dword [eax]
mov dword [esp], eax
mov eax, dword [ebp - 0x9c]
call fcn.00428203
mov esi, dword [ebp - 0x9c]
mov ecx, dword [esi + 0x28]
lea edx, [ecx + 1]
mov dword [ebp - 0x40], ecx
mov dword [esi + 0x28], edx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x48]
mov dword [esp + 0xc], 0xfffffff8
mov dword [esp + 4], 0
mov edx, dword [eax]
mov eax, dword [ebp - 0xbc]
mov eax, dword [eax]
lea eax, [edx + eax + 1]
mov edx, 0x76
mov dword [esp], eax
mov eax, dword [ebp - 0xa4]
call fcn.00422c58
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0xb8]
cmp byte [eax], 0xc
je 0x45de03
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0xb4], eax
dec eax
mov dword [ebp - 0x108], eax
mov eax, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x108]
mov dword [eax + 0x38], esi
mov eax, dword [ebp - 0xa0]
test byte [eax + 5], 0x40
jne 0x45d07b
mov eax, dword [ebp - 0xa0]
mov word [eax + 2], 0x140
mov eax, dword [ebp - 0xa0]
cmp dword [eax + 0x3c], 0
je 0x45d09a
mov edx, eax
mov ecx, dword [ebp - 0x108]
mov eax, dword [ebp - 0x9c]
call fcn.00462860
mov eax, dword [ebp - 0xa0]
cmp dword [eax + 8], 0
je 0x45debd
mov eax, dword [ebp - 0xa0]
test byte [eax + 4], 1
je 0x45dedf
mov eax, dword [ebp - 0x9c]
mov edi, dword [ebp - 0x9c]
xor ecx, ecx
mov eax, dword [eax + 0x28]
lea edx, [eax + 1]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0xa0]
mov dword [edi + 0x28], edx
mov edx, dword [eax + 0x1c]
mov dword [esp], 0
mov eax, edi
call fcn.00428203
mov ecx, dword [ebp - 0x8c]
mov dword [esp + 8], eax
mov edx, 0x76
mov eax, dword [ebp - 0xa4]
mov dword [esp + 0xc], 0xfffffff8
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00422c58
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0xa4]
mov edx, 8
call fcn.00403895
mov byte [ebp - 0x8f], 3
cmp dword [ebp - 0xd8], 0
jne 0x45e255
cmp dword [ebp - 0xac], 0
jne 0x45e255
mov esi, dword [ebp - 0xa0]
cmp byte [ebp - 0x90], 1
mov edi, dword [esi + 4]
sbb eax, eax
not eax
mov dword [ebp - 0xac], edi
mov edx, dword [ebp - 0xac]
and ax, 0x100
and dx, 0x4000
or edx, eax
mov eax, esi
mov esi, dword [esi + 0x44]
mov word [ebp - 0xb4], dx
test esi, esi
jne 0x45deeb
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xa8]
movsx eax, word [eax + 2]
mov dword [esp + 0x10], eax
movzx eax, word [ebp - 0xb4]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xa0]
mov dword [esp + 8], eax
mov eax, dword [eax + 0x1c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x48]
mov dword [esp], eax
mov eax, dword [ebp - 0x9c]
call fcn.00467a0e
test eax, eax
mov ebx, eax
jne 0x45d28a
mov dword [ebp - 0xb4], 0
jmp 0x45d280
mov eax, dword [ebp - 0xa0]
cmp word [eax + 2], 0x42
jle 0x45d208
mov word [eax + 2], 0x42
mov edx, dword [ebp - 0x48]
mov dword [ebp - 0xe4], 0
test edx, edx
jne 0x45e29d
mov eax, dword [ebp - 0x9c]
xor ecx, ecx
mov edx, 0x2c
mov eax, dword [eax + 0x38]
dec eax
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x9c]
mov esi, dword [ebp - 0xc0]
mov dword [eax + 0x38], esi
mov eax, dword [ebp - 0xb0]
call fcn.0041b0f8
test eax, eax
mov esi, eax
je 0x45d266
mov ecx, eax
mov eax, dword [ebp - 0x9c]
mov edx, 0x40b492
call fcn.0041b49a
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0xb4], 0
cmp byte [eax + 0x57], 0
je 0x45e2f8
mov ebx, 1
jmp 0x45d448
mov edi, dword [ebp - 0xa0]
mov ax, word [eax + 0x32]
cmp word [edi + 2], ax
jle 0x45d29e
mov word [edi + 2], ax
cmp byte [ebp - 0x90], 0
jne 0x45e191
mov ecx, dword [ebp - 0x48]
test ecx, ecx
jne 0x45e1a7
mov edx, dword [ebp - 0x34]
test edx, edx
jns 0x45e1f3
test esi, esi
je 0x45e20d
mov eax, dword [ebp - 0x9c]
mov edx, dword [ebp - 0xa0]
mov ecx, ebx
mov eax, dword [eax + 0x38]
lea esi, [eax - 1]
lea edi, [eax - 3]
mov dword [ebp - 0xa8], esi
lea esi, [eax - 2]
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0xac], esi
mov dword [eax + 0x38], edi
mov eax, dword [eax + 0x2c]
lea esi, [eax + 1]
mov eax, dword [ebp - 0x9c]
mov dword [eax + 0x2c], esi
mov eax, dword [ebp - 0xa8]
mov dword [esp], esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x9c]
call fcn.0046befd
mov eax, dword [ebp - 0xa4]
xor ecx, ecx
mov edx, 9
mov dword [esp], edi
call fcn.00423486
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0xa4]
call fcn.00420a25
mov eax, dword [ebp - 0xa4]
mov dword [esp + 4], str.inner_loop_subroutine
mov dword [esp], eax
call fcn.00429b7f
mov eax, dword [ebp - 0xac]
mov edx, dword [ebp - 0xa0]
or ecx, 0xffffffff
mov dword [esp + 0x10], edi
mov dword [ebp - 0x2c], 0
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xb8]
mov dword [esp + 8], eax
lea eax, [ebp - 0x90]
mov dword [esp + 4], eax
lea eax, [ebp - 0x48]
mov dword [esp], eax
mov eax, dword [ebp - 0x9c]
call fcn.00463e25
mov edx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xa4]
call fcn.00420a25
mov eax, dword [ebp - 0xa4]
mov edx, 0x43
mov ecx, esi
call fcn.00422bbb
mov eax, dword [ebp - 0xa4]
mov dword [esp + 4], str.end_inner_loop_subroutine
mov dword [esp], eax
call fcn.004289c4
mov eax, dword [ebp - 0xa4]
mov edx, edi
call fcn.00420a25
mov dword [ebp - 0xb4], 0
cmp byte [ebp - 0x8f], 3
jne 0x45d41d
mov eax, dword [ebp - 0x9c]
mov dword [esp + 0xc], str.DISTINCT
mov dword [esp + 8], str.USE_TEMP_B_TREE_FOR__s
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.0042a25b
mov ebx, dword [ebp - 0x48]
test ebx, ebx
jne 0x45f1bb
mov eax, dword [ebp - 0xa4]
mov edx, dword [ebp - 0x108]
xor ebx, ebx
call fcn.00420a25
mov eax, dword [ebp - 0x9c]
cmp dword [eax + 0x24], 0
setg bl
mov eax, dword [ebp - 0xb4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xb0]
mov dword [esp], eax
call fcn.0041670f
mov eax, dword [ebp - 0x9c]
call fcn.004038c7
jmp 0x45f812
mov eax, dword [ebp - 0xb0]
test byte [eax + 0x51], 0x80
jne 0x45cf2b
mov eax, dword [ebp - 0x9c]
lea ebx, [ebp - 0x84]
lea esi, [ebp - 0x68]
mov dword [ebp - 0x84], eax
mov eax, dword [eax]
mov dword [ebp - 0xac], eax
add eax, 0x57
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x74], 0
mov eax, dword [eax + 0x20]
test eax, eax
je 0x45d4e0
cmp dword [eax], 0
jle 0x45d4e0
test byte [eax + 0x2c], 0x40
je 0x45d4e0
mov dword [ebp - 0x70], 3
jmp 0x45d4e7
mov dword [ebp - 0x70], 1
mov eax, dword [ebp - 0xa0]
mov edx, dword [eax + 0x24]
mov eax, ebx
call fcn.0042798c
cmp dword [ebp - 0x7c], 0
je 0x45d549
xor eax, eax
mov ecx, 7
mov edi, esi
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x64], 0x41c614
mov dword [ebp - 0x60], 0x403eca
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0xa0]
mov edx, dword [eax + 0x24]
mov eax, esi
call fcn.0040d1fd
mov eax, dword [ebp - 0x6c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x84]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0040b317
cmp dword [ebp - 0x78], 0
jne 0x45d4a3
jmp 0x45cf2b
mov eax, dword [ebp - 0xa0]
test byte [eax + 4], 8
je 0x45cf3e
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
jne 0x45cf3e
mov esi, dword [ebp - 0xa0]
cmp dword [esi + 0x24], 0
jne 0x45cf3e
cmp dword [esi + 0x2c], 0
jne 0x45cf3e
cmp dword [esi + 0x28], 0
jne 0x45cf3e
cmp dword [esi + 0x30], 0
jne 0x45cf3e
mov edi, dword [eax + 8]
cmp byte [edi], 0xa8
jne 0x45cf3e
mov dword [esp + 4], 0x4f4fc2
mov eax, dword [edi + 8]
mov dword [esp], eax
call fcn.004019f3
test eax, eax
jne 0x45cf3e
cmp dword [edi + 0x14], 0
jne 0x45cf3e
mov eax, dword [ebp - 0xa0]
mov edx, dword [eax + 0x20]
cmp dword [edx], 1
jne 0x45cf3e
test byte [edi + 7], 1
jne 0x45cf3e
mov ebx, dword [edx + 0x1c]
test ebx, ebx
je 0x45cf3e
cmp dword [ebx + 0x34], 0
je 0x45cf3e
test byte [ebx + 7], 4
jne 0x45cf3e
mov eax, ebx
cmp byte [eax], 0x87
je 0x45d61f
cmp dword [eax + 0x34], 0
jne 0x45cf3e
cmp dword [eax + 0x24], 0
jne 0x45cf3e
cmp dword [eax + 0x3c], 0
jne 0x45cf3e
test byte [eax + 4], 8
jne 0x45cf3e
mov eax, dword [eax + 0x34]
test eax, eax
jne 0x45d610
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax]
mov dword [edx + 0x1c], 0
mov dword [ebp - 0xa8], eax
call fcn.00416dd7
mov eax, dword [ebp - 0x9c]
mov edx, 0x50
xor ecx, ecx
mov eax, dword [eax]
call fcn.0041b0f8
mov esi, dword [ebp - 0xa0]
mov dword [ebp - 0xac], 0
mov dword [esi + 0x20], eax
mov eax, dword [ebx + 0x34]
mov dword [ebx + 0x38], 0
mov dword [ebx + 0x34], 0
mov word [ebx + 2], 0
mov dword [ebp - 0xb4], eax
mov eax, dword [ebx + 4]
and ah, 0xfe
or eax, 8
mov dword [ebx + 4], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xa8]
mov dword [esp], eax
call fcn.0041670f
cmp dword [ebp - 0xb4], 0
mov eax, edi
je 0x45d6dd
mov eax, dword [ebp - 0xa8]
xor ecx, ecx
mov edx, edi
call fcn.0041c2c6
mov edx, eax
mov eax, dword [ebp - 0x9c]
call fcn.0041d086
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 0x9c]
xor ecx, ecx
mov edx, 0x8a
mov dword [esp], 0
call fcn.00425496
mov edx, eax
mov esi, eax
mov eax, dword [ebp - 0x9c]
mov ecx, ebx
call fcn.0042546d
cmp dword [ebp - 0xac], 0
je 0x45d73d
mov eax, dword [ebp - 0xac]
mov ecx, esi
mov edx, 0x6a
mov dword [esp], eax
mov eax, dword [ebp - 0x9c]
call fcn.00425496
mov esi, eax
mov ebx, dword [ebp - 0xb4]
test ebx, ebx
je 0x45d752
mov dword [ebp - 0xac], esi
jmp 0x45d685
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x1c]
mov dword [eax + 8], esi
mov eax, dword [ebp - 0xa0]
and dword [eax + 4], 0xfffffff7
mov eax, dword [ebp - 0xb0]
cmp byte [eax + 0x57], 0
jne 0x45d1e6
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0xa8], eax
jmp 0x45cf3e
mov eax, dword [ebx + 0x3c]
or eax, dword [ebx + 0x38]
jne 0x45d7b9
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x45d7b9
mov eax, dword [ebx + 4]
mov edx, 0x14
mov dword [esp], 0x4f222e
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x9c]
call fcn.00424ddf
mov eax, dword [ebx + 0x14]
test eax, eax
mov dword [ebp - 0xb4], eax
je 0x45dd84
mov eax, dword [ebp - 0xa0]
lea edx, [ebp - 0x68]
mov dword [ebp - 0x68], 0
call fcn.00404002
mov edi, dword [ebp - 0x9c]
mov eax, dword [ebp - 0x68]
add dword [edi + 0xe0], eax
mov eax, dword [ebp - 0xb0]
test byte [eax + 0x51], 0x10
jne 0x45d849
imul eax, dword [ebp - 0xac], 0x48
mov edi, dword [ebp - 0xa8]
test byte [edi + eax + 0x31], 1
je 0x45d81c
mov eax, dword [ebx + 0x44]
cmp byte [eax + 0x12], 0
je 0x45d849
cmp dword [eax], 1
jg 0x45d849
mov eax, dword [ebp - 0xa0]
mov edx, dword [ebp - 0xb4]
mov ecx, dword [eax + 0x24]
mov eax, dword [ebp - 0xac]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xa8]
mov dword [esp], eax
mov eax, dword [ebp - 0x9c]
call fcn.00427fdd
mov eax, dword [ebp - 0xb0]
test byte [eax + 0x53], 4
je 0x45d89a
mov eax, dword [ebp - 0x9c]
mov edi, dword [ebp - 0x9c]
mov esi, dword [ebp - 0xa8]
mov eax, dword [eax + 0x100]
mov dword [ebp - 0xc0], eax
mov eax, dword [ebx + 8]
mov dword [edi + 0x100], eax
imul eax, dword [ebp - 0xac], 0x48
mov al, byte [esi + eax + 0x31]
and al, 1
mov byte [ebp - 0xbc], al
jne 0x45d9d9
jmp 0x45d9f4
imul eax, dword [ebp - 0xac], 0x48
mov edi, dword [ebp - 0xa8]
test word [edi + eax + 0x30], 0x108
jne 0x45d855
mov eax, dword [ebx + 0x14]
test byte [eax + 4], 9
mov dword [ebp - 0xbc], eax
jne 0x45d855
mov edx, dword [eax + 0x34]
test edx, edx
je 0x45d8cb
cmp byte [eax], 0x87
jne 0x45d855
cmp dword [eax + 0x44], 0
jne 0x45d855
test edx, edx
mov eax, edx
jne 0x45d8bf
mov eax, dword [ebx + 0x38]
mov dword [ebp - 0xc0], eax
mov eax, dword [ebx + 0x3c]
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xbc]
mov edx, dword [eax + 0x30]
test edx, edx
je 0x45d943
mov eax, dword [edx]
mov dword [ebp - 0xc8], eax
xor eax, eax
cmp eax, dword [ebp - 0xc8]
jge 0x45d943
imul ecx, eax, 0x14
mov cx, word [edx + ecx + 0x18]
test cx, cx
je 0x45d940
dec ecx
xor esi, esi
mov edi, 0x80000000
cmp cx, 0x3f
ja 0x45d934
mov edi, ecx
shr edi, 5
and edi, 1
mov esi, edi
shl edi, cl
xor esi, 1
shl esi, cl
or dword [ebp - 0xc0], esi
or dword [ebp - 0xdc], edi
inc eax
jmp 0x45d900
mov eax, dword [ebx + 0x10]
xor ecx, ecx
movsx edi, word [eax + 0x22]
cmp edi, ecx
jle 0x45d855
cmp ecx, 0x3e
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xc4], 0x80000000
jg 0x45d98a
xor eax, eax
xor edx, edx
test cl, 0x20
sete al
setne dl
shl edx, cl
shl eax, cl
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edx
mov eax, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xc4]
and eax, dword [ebp - 0xc0]
and edx, dword [ebp - 0xdc]
or edx, eax
je 0x45d9a9
inc ecx
jmp 0x45d94c
mov eax, dword [ebp - 0xbc]
imul esi, ecx, 0x14
mov edx, dword [eax + 0x1c]
add edx, esi
mov edx, dword [edx + 8]
cmp byte [edx], 0x79
je 0x45d9d0
mov byte [edx], 0x79
and dword [edx + 4], 0xfff7dfff
or dword [eax + 4], 0x1000000
mov eax, dword [eax + 0x34]
test eax, eax
jne 0x45d9b2
jmp 0x45d9a6
mov edx, dword [ebx + 0x44]
mov al, byte [edx + 0x12]
test al, al
je 0x45daa0
cmp dword [edx], 1
jle 0x45d9f4
cmp al, 2
jne 0x45daa0
mov eax, dword [ebp - 0xa8]
test byte [eax + 0x2c], 0x40
jne 0x45da97
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax]
test byte [eax + 0x53], 2
jne 0x45da97
mov eax, dword [ebp - 0xa8]
mov edx, ebx
mov esi, dword [eax]
mov eax, dword [ebp - 0xac]
lea ecx, [eax + 1]
mov eax, dword [ebp - 0xa8]
mov dword [esp], esi
call fcn.00404d64
test eax, eax
jne 0x45da97
cmp dword [ebp - 0xac], 0
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 4]
jne 0x45da70
dec esi
je 0x45f819
mov edi, dword [ebp - 0xa8]
test byte [edi + 0x74], 2
jne 0x45f819
test eax, 0x10000000
jne 0x45da97
jmp 0x45f819
test eax, 0x10000000
jne 0x45da97
mov edx, dword [ebp - 0xac]
mov eax, ebx
test byte [eax + 0x24], 0x22
jne 0x45da97
test edx, edx
je 0x45f819
sub eax, 0x48
dec edx
cmp dword [eax + 0x14], 0
je 0x45da7f
cmp byte [ebp - 0xbc], 0
je 0x45db09
mov esi, dword [ebx + 0x44]
mov eax, dword [esi + 4]
test eax, eax
jle 0x45db09
mov ecx, dword [esi + 8]
mov dword [esp], eax
mov edx, 0xa
mov eax, dword [ebp - 0xa4]
call fcn.00423486
mov ecx, dword [ebx + 0x2c]
mov eax, dword [esi + 0xc]
cmp ecx, eax
je 0x45daf7
mov dword [esp], eax
mov eax, dword [ebp - 0xa4]
mov edx, 0x73
call fcn.00423486
mov eax, dword [ebp - 0xa4]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x4f4fc8
mov dword [esp], eax
call fcn.004289c4
mov eax, dword [esi + 0x10]
mov esi, dword [ebp - 0xb4]
mov word [esi + 2], ax
jmp 0x45dd3b
mov eax, dword [ebp - 0xac]
xor ecx, ecx
mov edx, ebx
mov dword [esp], eax
mov eax, dword [ebp - 0xa8]
call fcn.00404d64
test eax, eax
mov esi, eax
je 0x45db73
mov eax, dword [eax + 0x18]
test eax, eax
je 0x45db44
mov ecx, dword [esi + 0x1c]
mov dword [esp], eax
mov edx, 0xa
mov eax, dword [ebp - 0xa4]
call fcn.00423486
mov eax, dword [esi + 0x2c]
mov ecx, dword [ebx + 0x2c]
mov edx, 0x73
mov dword [esp], eax
mov eax, dword [ebp - 0xa4]
call fcn.00423486
mov eax, dword [esi + 0x14]
mov edi, dword [ebp - 0xb4]
mov ax, word [eax + 2]
mov word [edi + 2], ax
jmp 0x45dd3b
mov eax, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x9c]
mov edx, 9
mov eax, dword [eax + 0x2c]
inc eax
mov dword [esi + 0x2c], eax
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 0xa4]
call fcn.00422bff
lea edi, [eax + 1]
mov dword [ebp - 0xbc], eax
mov esi, dword [ebp - 0xa8]
imul eax, dword [ebp - 0xac], 0x48
mov dword [ebx + 0x18], edi
lea edx, [esi + eax + 0x20]
mov al, byte [edx + 0x10]
or eax, 0x10
test al, 8
mov byte [edx + 0x10], al
jne 0x45dbf1
mov eax, dword [ebp - 0xa4]
mov edx, 0xf
call fcn.00422bff
mov esi, eax
mov eax, dword [ebp - 0xa4]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.materialize___S
mov dword [esp], eax
call fcn.004289c4
jmp 0x45dc0d
mov eax, dword [ebp - 0xa4]
mov dword [esp + 8], ebx
xor esi, esi
mov dword [esp + 4], str.materialize___S
mov dword [esp], eax
call fcn.00429b7f
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], str.MATERIALIZE___S
mov dword [esp + 4], 1
mov byte [ebp - 0x68], 0xc
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov dword [esp], eax
call fcn.0042a25b
mov edx, dword [ebp - 0xb4]
mov dword [ebp - 0xc8], eax
lea ecx, [ebp - 0x68]
mov eax, dword [ebp - 0x9c]
call fcn.0045bcae
mov ecx, dword [ebp - 0xb4]
mov eax, dword [ebx + 0x10]
test esi, esi
mov dx, word [ecx + 2]
mov word [eax + 0x26], dx
je 0x45dc91
mov eax, dword [ebp - 0xa4]
mov edx, esi
call fcn.004133b0
mov ecx, dword [ebx + 0x1c]
mov eax, dword [ebp - 0xa4]
mov edx, 0x43
mov dword [esp], edi
call fcn.00423486
mov eax, dword [ebp - 0xa4]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.end___S
mov dword [esp], eax
call fcn.004289c4
mov ecx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xa4]
mov dword [esp], 0xffffffff
mov edx, ecx
call fcn.0040ce58
mov eax, dword [ebp - 0xa4]
mov edx, dword [ebp - 0xbc]
call fcn.004133b0
mov eax, dword [ebp - 0x9c]
mov edi, dword [ebp - 0xa8]
mov byte [eax + 0x13], 0
mov dword [eax + 0x1c], 0
imul eax, dword [ebp - 0xac], 0x48
mov eax, dword [edi + eax + 0x30]
and ax, 0x108
cmp ax, 0x100
jne 0x45dd3b
mov edx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x44]
mov edi, dword [ebp - 0xb4]
mov dword [eax + 4], edx
mov edx, dword [ebx + 0x1c]
mov dword [eax + 8], edx
mov edx, dword [ebx + 0x2c]
mov dword [eax + 0xc], edx
mov dx, word [edi + 2]
mov word [eax + 0x10], dx
mov eax, dword [ebp - 0xb0]
cmp byte [eax + 0x57], 0
jne 0x45d1e6
mov eax, dword [ebp - 0xa0]
lea edx, [ebp - 0x84]
mov dword [ebp - 0x84], 0
call fcn.00404002
mov esi, dword [ebp - 0x9c]
mov eax, dword [ebp - 0x84]
mov edi, dword [ebp - 0xc0]
sub dword [esi + 0xe0], eax
mov dword [esi + 0x100], edi
inc dword [ebp - 0xac]
add ebx, 0x48
jmp 0x45cf51
mov edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0x48]
or ecx, 0xffffffff
call fcn.0042fc83
test eax, eax
jne 0x45cfbf
mov eax, dword [ebp - 0xa0]
cmp dword [eax + 0x44], 0
jne 0x45cfbf
and dword [eax + 4], 0xfffffffe
mov edx, dword [ebp - 0xbc]
xor ecx, ecx
mov eax, dword [ebp - 0xb0]
call fcn.0041c2e1
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xa0]
mov edi, dword [ebp - 0xac]
mov byte [ebp - 0x90], 2
or dword [eax + 4], 8
mov dword [eax + 0x28], edi
jmp 0x45cfbf
mov dword [ebp - 0x34], 0xffffffff
jmp 0x45d02f
mov eax, dword [ebp - 0xb8]
mov edx, 0x76
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0xbc]
mov eax, dword [eax]
mov dword [esp], eax
mov eax, dword [ebp - 0xa4]
call fcn.00423486
mov eax, dword [ebp - 0xa0]
test byte [eax + 5], 8
je 0x45d03e
mov eax, dword [ebp - 0xbc]
mov ebx, dword [eax]
lea esi, [ebx - 1]
imul ebx, ebx, 0x14
add ebx, eax
test esi, esi
jle 0x45de93
imul eax, esi, 0x14
mov edi, dword [ebp - 0xbc]
sub ebx, 0x14
test byte [edi + eax + 0x14], 0x40
jne 0x45de93
mov eax, dword [ebx + 8]
dec esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xb0]
mov dword [esp], eax
call fcn.004166ae
mov eax, dword [ebx + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xb0]
mov dword [esp], eax
call fcn.0040b317
mov eax, dword [ebp - 0xbc]
dec dword [eax]
jmp 0x45de47
xor eax, eax
mov esi, dword [ebp - 0xbc]
cmp eax, dword [esi]
jge 0x45d03e
imul edx, eax, 0x14
mov esi, dword [ebp - 0xbc]
test byte [esi + edx + 0x14], 0x40
jne 0x45deba
mov edx, dword [esi + edx + 8]
mov byte [edx], 0x79
inc eax
jmp 0x45de95
mov edx, dword [ebp - 0x34]
test edx, edx
js 0x45d0aa
mov eax, dword [ebp - 0xa4]
call fcn.004038ab
mov byte [eax], 0x77
or byte [ebp - 0x28], 1
jmp 0x45d0aa
mov byte [ebp - 0x8f], 0
jmp 0x45d13c
mov eax, dword [eax + 0x20]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0x1c]
mov ebx, dword [eax]
mov eax, dword [ebp - 0x9c]
call fcn.0042351d
mov ecx, dword [esi + 0x30]
mov edx, 0x76
mov dword [esp], ebx
mov edi, eax
call fcn.00423486
mov eax, dword [esi + 0x30]
mov edx, 0x73
lea ecx, [eax + 1]
mov dword [esp], eax
mov eax, edi
call fcn.00423486
mov eax, dword [esi + 0x30]
mov edx, 0x73
lea ecx, [eax + 2]
mov dword [esp], eax
mov eax, edi
call fcn.00423486
mov eax, dword [esi + 0x30]
mov edx, 0x73
lea ecx, [eax + 3]
mov dword [esp], eax
mov eax, edi
call fcn.00423486
mov eax, dword [esi + 8]
test eax, eax
je 0x45df8e
mov ecx, dword [eax]
mov eax, dword [ebp - 0x9c]
mov ebx, dword [ebp - 0x9c]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
add eax, ecx
mov dword [esi + 0x44], edx
mov dword [ebx + 0x2c], eax
lea eax, [ecx + edx - 1]
mov dword [esp], edx
xor ecx, ecx
mov edx, 0x4b
mov dword [esp + 4], eax
mov eax, edi
call fcn.00422b40
mov eax, dword [ebp - 0x9c]
mov ebx, dword [ebp - 0x9c]
mov ecx, 1
mov edx, 0x47
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0xac], eax
inc eax
mov dword [ebx + 0x2c], eax
mov dword [esi + 0x54], eax
mov ebx, esi
mov dword [esp], eax
mov eax, edi
call fcn.00423486
cmp byte [esi + 0x14], 0
je 0x45e076
mov eax, dword [ebp - 0x9c]
mov ebx, dword [ebp - 0x9c]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
add eax, 2
mov dword [esi + 0x58], edx
mov dword [ebx + 0x2c], eax
mov dword [esi + 0x5c], eax
mov eax, dword [ebx + 0x28]
lea ecx, [eax + 1]
mov dword [ebx + 0x28], ecx
mov dword [esi + 0x3c], eax
mov ecx, 1
mov dword [esp], edx
mov eax, edi
mov edx, 0x47
call fcn.00423486
mov eax, dword [esi + 0x5c]
xor ecx, ecx
mov edx, 0x47
mov dword [esp], eax
mov eax, edi
call fcn.00423486
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x3c]
mov edx, 0x73
mov dword [esp], eax
mov eax, edi
call fcn.00423486
jmp 0x45d195
cmp byte [ebx + 0x11], 0x5a
jne 0x45e081
mov eax, dword [eax + 0x20]
cmp eax, str.nth_value
je 0x45e121
cmp eax, str.first_value
je 0x45e121
cmp eax, 0x5049c0
je 0x45e162
cmp eax, str.lead
je 0x45e162
mov ebx, dword [ebx + 0x24]
test ebx, ebx
je 0x45d195
mov eax, dword [ebx + 0x2c]
test byte [eax + 5], 0x10
je 0x45e03c
jmp 0x45e036
mov eax, dword [ebx + 0x48]
xor ecx, ecx
mov edx, dword [eax + 0x14]
mov eax, dword [ebp - 0x9c]
mov dword [esp], 0
call fcn.00428203
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x9c]
mov eax, dword [eax + 0x28]
lea edx, [eax + 1]
mov dword [ecx + 0x28], edx
mov dword [ebx + 0x3c], eax
mov eax, dword [ecx + 0x2c]
lea edx, [eax + 1]
add eax, 3
cmp dword [ebp - 0xac], 0
mov dword [ebx + 0x40], edx
mov dword [ecx + 0x2c], eax
je 0x45e0e9
mov eax, dword [ebx + 0x2c]
mov eax, dword [eax + 0x20]
cmp byte [eax + 1], 0x69
jne 0x45e0e9
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x10]
mov byte [eax], 1
mov ecx, dword [ebx + 0x3c]
mov edx, 0x76
mov dword [esp], 2
mov eax, edi
call fcn.00423486
mov edx, dword [ebp - 0xac]
mov ecx, 0xfffffff8
mov eax, edi
call fcn.0040e526
mov eax, dword [ebx + 0x40]
xor ecx, ecx
mov edx, 0x47
inc eax
mov dword [esp], eax
jmp 0x45e185
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x9c]
mov eax, dword [eax + 0x2c]
mov ecx, dword [ecx + 0x28]
lea edx, [eax + 1]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebx + 0x40], edx
lea edx, [ecx + 1]
mov dword [eax + 0x28], edx
mov eax, dword [ebp - 0xac]
mov edx, dword [ebp - 0x9c]
mov dword [ebx + 0x3c], ecx
add eax, 2
mov dword [edx + 0x2c], eax
jmp 0x45e17a
mov eax, dword [ebp - 0x9c]
mov edx, dword [ebp - 0x9c]
mov ecx, dword [eax + 0x28]
lea eax, [ecx + 1]
mov dword [edx + 0x28], eax
mov dword [ebx + 0x3c], ecx
mov eax, dword [esi + 0x30]
mov edx, 0x73
mov dword [esp], eax
mov eax, edi
call fcn.00423486
jmp 0x45e06b
mov al, byte [ebx + 0x2f]
test al, al
je 0x45d2ab
mov byte [ebp - 0x8f], al
jmp 0x45d2ab
movsx eax, byte [ebx + 0x2d]
mov edx, 0
test al, al
cmovns edx, eax
mov dword [ebp - 0x44], edx
test byte [ebx + 0x30], 4
je 0x45e1d1
movzx eax, byte [ebx + 0x2c]
dec eax
imul eax, eax, 0x68
add eax, ebx
cmp dword [eax + 0x330], 0
je 0x45e1d6
mov eax, dword [ebx + 0x1c]
jmp 0x45e1dc
mov eax, dword [eax + 0x308]
mov dword [ebp - 0x2c], eax
cmp dword [ecx], edx
jne 0x45d2b6
mov dword [ebp - 0x48], 0
jmp 0x45d2b6
cmp dword [ebp - 0x48], 0
jne 0x45d2c1
mov eax, dword [ebp - 0xa4]
call fcn.0040e558
jmp 0x45d2c1
mov eax, dword [ebx + 0x20]
mov edx, dword [ebp - 0xa0]
or ecx, 0xffffffff
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xb8]
mov dword [esp + 8], eax
lea eax, [ebp - 0x90]
mov dword [esp + 4], eax
lea eax, [ebp - 0x48]
mov dword [esp], eax
mov eax, dword [ebp - 0x9c]
call fcn.00463e25
mov eax, ebx
call fcn.0046b8a2
jmp 0x45d3e4
cmp dword [ebp - 0xac], 0
mov eax, dword [ebp - 0xa0]
je 0x45e2e3
mov eax, dword [eax + 0x1c]
mov edx, dword [eax]
add eax, 8
test edx, edx
jle 0x45e27c
mov word [eax + 0x12], 0
dec edx
add eax, 0x14
jmp 0x45e26c
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax]
lea edx, [eax + 8]
mov eax, ecx
test eax, eax
jle 0x45d1f5
mov word [edx + 0x12], 0
dec eax
add edx, 0x14
jmp 0x45e289
xor eax, eax
cmp ecx, dword [edx]
jne 0x45d21d
cmp eax, ecx
jge 0x45e2c2
imul esi, eax, 0x14
mov edi, dword [ebp - 0xac]
inc eax
mov bl, byte [edx + esi + 0x10]
and ebx, 1
mov byte [edi + esi + 0x10], bl
jmp 0x45e2a7
mov eax, dword [ebp - 0xac]
or ecx, 0xffffffff
call fcn.0042fc83
test eax, eax
sete al
movzx eax, al
mov dword [ebp - 0xe4], eax
jmp 0x45d21d
mov word [eax + 2], 0
mov dword [ebp - 0xe4], 0
jmp 0x45d21d
mov eax, dword [ebp - 0xa0]
lea edx, [ebp - 0x68]
mov ecx, 8
mov edi, edx
mov eax, dword [eax + 0x10]
mov dword [esi + 0x28], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x64], eax
xor eax, eax
cmp dword [ebp - 0xac], 0
je 0x45e33a
mov eax, dword [ebp - 0xac]
mov eax, dword [eax]
mov word [esi + 2], ax
mov eax, dword [ebp - 0xac]
mov edx, dword [ebp - 0xbc]
mov dword [esi + 0x10], eax
lea eax, [ebp - 0x68]
call fcn.004ec595
mov edx, dword [ebp - 0x48]
lea eax, [ebp - 0x68]
call fcn.004ec595
cmp dword [ebp - 0xec], 0
je 0x45e3c6
cmp dword [ebp - 0xac], 0
je 0x45e3b8
lea ebx, [ebp - 0x84]
xor eax, eax
mov ecx, 7
mov edi, ebx
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x80], 0x425801
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0xa0]
mov edx, dword [eax + 0x2c]
mov dword [ebp - 0x6c], eax
mov eax, ebx
call fcn.0040d1fd
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0xdc], eax
mov edx, dword [ebp - 0xec]
lea eax, [ebp - 0x68]
call fcn.004ec55f
mov eax, dword [esi + 0x18]
mov dword [esi + 0x1c], eax
mov eax, dword [ebp - 0xa0]
cmp dword [eax + 0x28], 0
jne 0x45e482
cmp dword [eax + 0x2c], 0
jne 0x45e482
cmp dword [esi + 0x24], 1
jne 0x45e482
mov eax, dword [esi + 0x20]
mov eax, dword [eax]
mov edi, dword [eax + 0x14]
test edi, edi
je 0x45e482
cmp dword [edi], 1
jne 0x45e482
test byte [eax + 7], 1
jne 0x45e482
mov ebx, dword [ebp - 0xb0]
test byte [ebx + 0x52], 1
jne 0x45e482
mov ebx, dword [eax + 8]
mov edx, 0x4f5024
mov eax, ebx
call fcn.004019bf
test eax, eax
jne 0x45e448
mov eax, dword [edi + 8]
call fcn.004040ce
cmp eax, 1
mov dword [ebp - 0xc8], 1
sbb ebx, ebx
not ebx
and ebx, 2
jmp 0x45e464
mov edx, 0x4f5028
mov eax, ebx
call fcn.004019bf
test eax, eax
jne 0x45e482
mov bl, 1
mov dword [ebp - 0xc8], 2
mov eax, dword [ebp - 0xb0]
xor ecx, ecx
mov edx, edi
call fcn.0041c2e1
test eax, eax
mov dword [ebp - 0xb4], eax
je 0x45e493
mov byte [eax + 0x10], bl
jmp 0x45e493
mov dword [ebp - 0xb4], 0
mov byte [ebp - 0xc8], 0
lea edx, [ebp - 0x68]
mov eax, esi
call fcn.004ec5c9
mov eax, dword [ebp - 0xb0]
cmp byte [eax + 0x57], 0
jne 0x45d280
cmp dword [ebp - 0xac], 0
je 0x45ef20
cmp dword [esi + 0x24], 1
jne 0x45e533
mov eax, dword [esi + 0x20]
cmp dword [eax + 8], 0
js 0x45e533
mov eax, dword [eax]
test eax, eax
je 0x45e533
test byte [eax + 5], 0x10
jne 0x45e533
mov eax, dword [eax + 0x14]
test eax, eax
je 0x45e533
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0xb0]
xor ecx, ecx
call fcn.0041c2c6
mov edx, dword [ebp - 0xac]
mov ebx, eax
mov eax, dword [ebp - 0xb0]
xor ecx, ecx
call fcn.0041c2e1
mov edx, eax
mov eax, dword [ebp - 0x9c]
mov ecx, ebx
call fcn.00420e1e
cmp eax, 1
mov dword [ebp - 0xc8], eax
sbb eax, eax
mov dword [ebp - 0xd8], eax
not word [ebp - 0xd8]
and word [ebp - 0xd8], 0x500
jmp 0x45e546
mov word [ebp - 0xd8], 0
mov dword [ebp - 0xc8], 0
mov eax, dword [ebp - 0x9c]
mov edi, dword [ebp - 0x9c]
xor ecx, ecx
mov eax, dword [eax + 0x28]
lea edx, [eax + 1]
mov dword [edi + 0x28], edx
mov dword [esi + 4], eax
mov eax, dword [esi + 0x18]
mov edx, dword [ebp - 0xac]
mov dword [esp], eax
mov eax, edi
call fcn.00428203
mov ecx, dword [esi + 4]
mov dword [ebp - 0xf4], eax
mov edx, 0x77
mov dword [esp + 0xc], 0xfffffff8
mov dword [esp + 8], eax
mov dword [esp + 4], 0
movzx eax, word [esi + 2]
mov dword [esp], eax
mov eax, dword [ebp - 0xa4]
call fcn.00422c58
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x9c]
xor ecx, ecx
mov eax, dword [eax + 0x2c]
lea edi, [eax + 1]
mov dword [ebp - 0xf8], edi
lea edi, [eax + 2]
mov dword [ebp - 0x110], edi
lea edi, [eax + 3]
mov dword [ebp - 0xe8], edi
mov edi, dword [ebp - 0x9c]
mov edx, dword [edi + 0x38]
lea edi, [edx - 1]
mov dword [ebp - 0x10c], edi
lea edi, [eax + 4]
add eax, 5
mov dword [ebp - 0x100], eax
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0xfc], edi
lea edi, [edx - 2]
mov dword [ebp - 0xf0], edi
mov edi, dword [ebp - 0x9c]
mov ebx, dword [ebp - 0xf0]
mov dword [edi + 0x38], ebx
mov edx, dword [eax]
mov eax, dword [ebp - 0xfc]
add eax, edx
lea edi, [eax + 1]
add eax, edx
mov edx, 0x47
mov dword [ebp - 0x114], edi
mov edi, dword [ebp - 0x9c]
mov dword [edi + 0x2c], eax
mov eax, dword [ebp - 0x110]
mov dword [esp], eax
mov eax, dword [ebp - 0xa4]
call fcn.00423486
mov eax, dword [ebp - 0xa4]
mov dword [esp + 4], str.clear_abort_flag
mov dword [esp], eax
call fcn.004289c4
mov edi, dword [ebp - 0xac]
mov eax, dword [ebp - 0x100]
xor ecx, ecx
mov edx, 0x4b
add eax, dword [edi]
dec eax
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x100]
mov dword [esp], eax
mov eax, dword [ebp - 0xa4]
call fcn.00422b40
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xfc]
mov edx, 0xa
mov dword [esp], eax
mov eax, dword [ebp - 0xa4]
call fcn.00423486
cmp byte [ebp - 0x90], 2
mov eax, 0x40
mov edx, pe_nt_image_headers32
mov ecx, dword [ebp - 0xdc]
mov dword [esp + 0x10], 0
cmovne edx, eax
mov eax, dword [ebp - 0xe4]
or edx, dword [ebp - 0xd8]
neg eax
and ax, 0x200
or eax, edx
mov edx, dword [ebp - 0xa8]
cwde
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xa0]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xc8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xac]
mov dword [esp], eax
mov eax, dword [ebp - 0x9c]
call fcn.00467a0e
test eax, eax
mov dword [ebp - 0xa8], eax
jne 0x45e73f
mov eax, dword [ebp - 0xc8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xb0]
mov dword [esp], eax
call fcn.0041670f
jmp 0x45d280
mov eax, dword [ebp - 0x9c]
cmp dword [eax + 0x48], 0
je 0x45e78d
cmp word [esi + 2], 0
mov ebx, dword [esi + 0x1c]
mov dword [esi + 0x18], ebx
je 0x45e783
mov eax, dword [ebp - 0xa0]
xor edx, edx
mov eax, dword [eax + 0x28]
mov eax, dword [eax]
dec eax
cmp ebx, edx
jle 0x45e77e
mov ecx, edx
shl ecx, 4
add ecx, dword [esi + 0x14]
movsx ecx, word [ecx + 0xe]
cmp eax, ecx
cmovl eax, ecx
inc edx
jmp 0x45e766
inc eax
mov word [esi + 2], ax
lea edx, [ebp - 0x68]
mov eax, esi
call fcn.004ec5c9
mov eax, dword [ebp - 0x9c]
mov edi, dword [ebp - 0x9c]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
mov dword [esi + 0xc], edx
mov edx, dword [esi + 0x24]
add edx, dword [esi + 0x18]
add eax, edx
mov edx, 0
mov dword [edi + 0x2c], eax
mov eax, dword [ebp - 0xa8]
mov edi, dword [ebp - 0xac]
movzx eax, byte [eax + 0x2f]
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0xa8]
movsx eax, byte [eax + 0x2d]
test al, al
cmovs eax, edx
cmp eax, dword [edi]
je 0x45e9cd
cmp byte [ebp - 0x90], 0
mov eax, str.GROUP_BY
je 0x45e7ff
mov edi, dword [ebp - 0xa0]
mov edx, str.DISTINCT
test byte [edi + 4], 1
cmove eax, edx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x9c]
mov dword [esp + 8], str.USE_TEMP_B_TREE_FOR__s
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.0042a25b
mov eax, dword [ebp - 0xac]
mov ebx, dword [eax]
mov eax, dword [esi + 0x18]
mov edi, ebx
mov dword [ebp - 0xdc], eax
mov edx, ebx
xor eax, eax
cmp eax, dword [ebp - 0xdc]
jge 0x45e855
mov ecx, eax
shl ecx, 4
add ecx, dword [esi + 0x14]
movsx ecx, word [ecx + 0xe]
cmp edx, ecx
jg 0x45e852
inc edi
inc edx
inc eax
jmp 0x45e838
mov eax, dword [ebp - 0x9c]
mov edx, edi
call fcn.00404268
mov edx, dword [ebp - 0xac]
mov dword [ebp - 0xdc], eax
mov ecx, eax
mov eax, dword [ebp - 0x9c]
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00462c86
mov byte [esi], 1
mov dword [ebp - 0xe0], 0
mov eax, dword [ebp - 0xe0]
cmp eax, dword [esi + 0x18]
jge 0x45e8d5
mov eax, dword [ebp - 0xe0]
shl eax, 4
add eax, dword [esi + 0x14]
movsx edx, word [eax + 0xe]
cmp ebx, edx
jg 0x45e8cd
mov ecx, dword [ebp - 0xdc]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x9c]
add ecx, ebx
inc ebx
call fcn.004620be
inc dword [ebp - 0xe0]
jmp 0x45e897
mov eax, dword [ebp - 0x9c]
mov byte [esi], 0
call fcn.00404241
mov ecx, dword [ebp - 0xdc]
mov ebx, eax
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xa4]
mov edx, 0x61
mov dword [esp], edi
call fcn.00422b40
mov ecx, dword [esi + 4]
mov eax, dword [ebp - 0xa4]
mov edx, 0x8b
mov dword [esp], ebx
call fcn.00423486
mov eax, dword [ebp - 0x9c]
mov edx, ebx
call fcn.0040db98
mov edx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0x9c]
mov ecx, edi
call fcn.0040dbb9
mov eax, dword [ebp - 0xa8]
call fcn.0046b8a2
mov eax, dword [ebp - 0x9c]
mov ebx, dword [ebp - 0x9c]
mov eax, dword [eax + 0x28]
mov dword [ebp - 0xdc], eax
inc eax
mov dword [ebx + 0x28], eax
mov eax, dword [ebp - 0xdc]
mov dword [esi + 8], eax
mov eax, ebx
call fcn.00404241
mov ecx, dword [ebp - 0xdc]
mov dword [esp], eax
mov ebx, eax
mov eax, dword [ebp - 0xa4]
mov edx, 0x79
mov dword [esp + 4], edi
call fcn.00422b40
mov eax, dword [ebp - 0xc0]
mov ecx, dword [esi + 4]
mov edx, 0x22
mov dword [esp], eax
mov eax, dword [ebp - 0xa4]
call fcn.00423486
mov eax, dword [ebp - 0xa4]
mov dword [esp + 4], str.GROUP_BY_sort
mov dword [esp], eax
call fcn.004289c4
mov byte [esi + 1], 1
mov dword [ebp - 0xe0], 1
jmp 0x45e9e3
xor ebx, ebx
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xe0], 0
mov eax, dword [ebp - 0x9c]
cmp dword [eax + 0x48], 0
je 0x45ea2c
lea edx, [ebp - 0x84]
mov ecx, 7
xor eax, eax
mov edi, edx
mov dword [ebp - 0x11c], edx
rep stosd dword es:[edi], eax
mov dword [ebp - 0x80], 0x404d10
xor edi, edi
cmp edi, dword [esi + 0x24]
jge 0x45ea2c
mov eax, edi
inc edi
shl eax, 4
add eax, dword [esi + 0x20]
mov edx, dword [eax]
mov eax, dword [ebp - 0x11c]
call fcn.0040d1fd
jmp 0x45ea0f
cmp dword [ebp - 0xe4], 0
je 0x45ea6b
mov eax, dword [ebp - 0xb0]
test byte [eax + 0x50], 4
jne 0x45ea6b
cmp dword [ebp - 0xe0], 0
jne 0x45ea56
mov eax, dword [ebp - 0xa8]
test byte [eax + 0x30], 8
je 0x45ea6b
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x48], 0
call fcn.0040e558
mov eax, dword [ebp - 0xa4]
cmp dword [ebp - 0xe0], 0
mov eax, dword [eax + 0x6c]
mov dword [ebp - 0xe4], eax
je 0x45eaa3
mov eax, dword [ebp - 0xdc]
mov ecx, dword [esi + 4]
mov edx, 0x85
mov dword [esp], ebx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xa4]
call fcn.00422b40
mov edi, dword [ebp - 0x114]
xor ebx, ebx
mov eax, dword [ebp - 0xac]
mov eax, dword [eax]
cmp ebx, eax
jge 0x45eb00
cmp dword [ebp - 0xe0], 0
je 0x45eadf
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xa4]
mov edx, 0x5e
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.00422b40
jmp 0x45eafc
imul eax, ebx, 0x14
mov ecx, dword [ebp - 0xac]
mov byte [esi], 1
mov edx, dword [ecx + eax + 8]
mov eax, dword [ebp - 0x9c]
mov ecx, edi
call fcn.004620be
inc ebx
inc edi
jmp 0x45eaab
cmp dword [ebp - 0xf4], 0
je 0x45eb11
mov edi, dword [ebp - 0xf4]
inc dword [edi]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x114]
mov edx, 0x5a
mov edi, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0x100]
mov dword [esp + 0xc], 0xfffffff8
mov dword [esp], eax
mov eax, dword [ebp - 0xa4]
mov dword [esp + 8], edi
call fcn.00422c58
mov eax, dword [ebp - 0xa4]
mov edx, 0xe
mov ebx, dword [eax + 0x6c]
mov dword [esp], 0
lea ecx, [ebx + 1]
mov dword [esp + 4], ecx
call fcn.00422b40
mov edi, dword [ebp - 0xac]
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x114]
mov edx, dword [edi]
mov edi, dword [ebp - 0x100]
mov eax, dword [eax + 8]
mov dword [esp + 4], edx
mov dword [esp], edi
mov edx, 0x4f
call fcn.00422b40
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0xe8]
mov edx, 0xa
mov dword [esp], eax
mov eax, dword [ebp - 0xa4]
call fcn.00423486
mov eax, dword [ebp - 0xa4]
mov dword [esp + 4], str.output_one_row
mov dword [esp], eax
call fcn.004289c4
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0x110]
mov edx, 0x3b
mov dword [esp], eax
mov eax, dword [ebp - 0xa4]
call fcn.00423486
mov eax, dword [ebp - 0xa4]
mov dword [esp + 4], str.check_abort_flag
mov dword [esp], eax
call fcn.004289c4
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xfc]
mov edx, 0xa
mov dword [esp], eax
mov eax, dword [ebp - 0xa4]
call fcn.00423486
mov eax, dword [ebp - 0xa4]
mov dword [esp + 4], str.reset_accumulator
mov dword [esp], eax
call fcn.004289c4
mov eax, dword [ebp - 0xa4]
mov edx, ebx
call fcn.004133b0
mov eax, dword [ebp - 0x104]
mov edx, dword [ebp - 0xf8]
mov ecx, esi
mov dword [esp], eax
mov eax, dword [ebp - 0x9c]
call fcn.004ecc61
mov eax, dword [ebp - 0xf8]
mov ecx, 1
mov edx, 0x47
mov dword [esp], eax
mov eax, dword [ebp - 0xa4]
call fcn.00423486
mov eax, dword [ebp - 0xa4]
mov dword [esp + 4], str.indicate_data_in_accumulator
mov dword [esp], eax
call fcn.004289c4
cmp dword [ebp - 0xe0], 0
je 0x45ecb8
mov eax, dword [ebp - 0xe4]
mov ecx, dword [esi + 4]
mov edx, 0x25
mov dword [esp], eax
mov eax, dword [ebp - 0xa4]
call fcn.00423486
jmp 0x45ecd4
mov eax, dword [ebp - 0xa8]
call fcn.0046b8a2
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp - 0xa4]
call fcn.0040e558
mov eax, dword [ebp - 0xc8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xb0]
mov dword [esp], eax
call fcn.0041670f
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0xe8]
mov edx, 0xa
mov dword [esp], eax
mov eax, dword [ebp - 0xa4]
call fcn.00423486
mov eax, dword [ebp - 0xa4]
mov dword [esp + 4], str.output_final_row
mov dword [esp], eax
call fcn.004289c4
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xa4]
call fcn.0042392c
mov eax, dword [ebp - 0xa4]
mov ecx, 1
mov edx, 0x47
mov edi, dword [eax + 0x6c]
mov eax, dword [ebp - 0x110]
mov dword [esp], eax
mov eax, dword [ebp - 0xa4]
call fcn.00423486
mov eax, dword [ebp - 0xa4]
mov dword [esp + 4], str.set_abort_flag
mov dword [esp], eax
call fcn.004289c4
mov ecx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0xa4]
mov edx, 0x43
call fcn.00422bbb
mov edx, dword [ebp - 0x10c]
mov eax, dword [ebp - 0xa4]
call fcn.00420a25
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0xf8]
mov edx, 0x3b
mov ebx, dword [eax + 0x6c]
lea eax, [ebx + 2]
inc ebx
mov dword [esp], eax
mov eax, dword [ebp - 0xa4]
call fcn.00423486
mov eax, dword [ebp - 0xa4]
mov dword [esp + 4], str.Groupby_result_generator_entry_point
mov dword [esp], eax
call fcn.004289c4
mov ecx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0xa4]
mov edx, 0x43
call fcn.00422bbb
mov eax, dword [ebp - 0x9c]
mov edx, esi
mov eax, dword [eax + 8]
call fcn.004ec869
mov eax, dword [ebp - 0xec]
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x9c]
mov dword [esp], eax
call fcn.004646be
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xa0]
or ecx, 0xffffffff
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
lea eax, [ebp - 0x90]
mov dword [esp + 4], eax
lea eax, [ebp - 0x48]
mov dword [esp], eax
mov eax, dword [ebp - 0x9c]
call fcn.00463e25
mov ecx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0xa4]
mov edx, 0x43
call fcn.00422bbb
mov eax, dword [ebp - 0xa4]
mov dword [esp + 4], str.end_groupby_result_generator
mov dword [esp], eax
call fcn.004289c4
mov edx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xa4]
call fcn.00420a25
mov eax, dword [ebp - 0x9c]
mov edx, esi
call fcn.004eca3d
mov eax, dword [ebp - 0xf8]
xor ecx, ecx
mov edx, 0x47
mov dword [esp], eax
mov eax, dword [ebp - 0xa4]
call fcn.00423486
mov eax, dword [ebp - 0xa4]
mov dword [esp + 4], str.indicate_accumulator_empty
mov dword [esp], eax
call fcn.004289c4
mov ecx, dword [ebp - 0xfc]
mov eax, dword [ebp - 0xa4]
mov edx, 0x43
call fcn.00422bbb
cmp word [ebp - 0xd8], 0
je 0x45f1a5
cmp dword [ebp - 0x104], 0
je 0x45f1a5
mov eax, dword [esi + 0x20]
mov edx, dword [ebp - 0x104]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp], eax
mov eax, dword [ebp - 0x9c]
call fcn.00411bdd
jmp 0x45f1a5
mov eax, dword [ebp - 0xa0]
cmp dword [eax + 0x24], 0
jne 0x45f931
mov edx, dword [eax + 0x1c]
cmp dword [edx], 1
jne 0x45f931
mov eax, dword [eax + 0x20]
cmp dword [eax], 1
jne 0x45f931
cmp dword [eax + 0x1c], 0
jne 0x45f931
cmp dword [esi + 0x24], 1
jne 0x45f931
mov edi, dword [ebp - 0xa0]
cmp dword [edi + 0x2c], 0
jne 0x45f931
mov eax, dword [eax + 0x18]
cmp byte [eax + 0x2b], 0
mov dword [ebp - 0xac], eax
jne 0x45f931
mov eax, dword [edx + 8]
cmp byte [eax], 0xa8
jne 0x45f931
cmp esi, dword [eax + 0x28]
jne 0x45f931
mov edx, dword [esi + 0x20]
mov edx, dword [edx + 4]
test byte [edx + 5], 1
je 0x45f931
test dword [eax + 4], 0x1000004
jne 0x45f931
mov eax, dword [ebp - 0xac]
xor ebx, ebx
mov edx, dword [eax + 0x3c]
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax]
call fcn.00404a49
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0x9c]
mov edi, dword [ebp - 0x9c]
mov edx, dword [ebp - 0xc8]
mov eax, dword [eax + 0x28]
mov dword [ebp - 0xa8], eax
inc eax
mov dword [edi + 0x28], eax
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0xd8], eax
mov eax, edi
call fcn.00456868
mov eax, dword [ebp - 0xac]
mov edx, dword [ebp - 0xc8]
mov ecx, dword [eax + 0x14]
mov eax, dword [eax]
mov dword [esp], 0
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x9c]
call fcn.00423fda
mov eax, dword [ebp - 0xac]
test byte [eax + 0x1c], 0x80
je 0x45f047
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 8]
call fcn.0040dd10
mov ebx, eax
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x20]
test byte [eax + 0x30], 1
jne 0x45f067
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 8]
test eax, eax
jne 0x45fb20
xor edi, edi
test ebx, ebx
je 0x45f085
mov eax, dword [ebx + 0x2c]
mov edx, ebx
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x9c]
call fcn.00427600
mov edi, eax
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xa8]
mov edx, 0x70
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xd8]
mov dword [esp], eax
mov eax, dword [ebp - 0xa4]
call fcn.00422c1d
test edi, edi
je 0x45f0d1
mov eax, dword [ebp - 0xa4]
mov dword [esp], 0xfffffff8
mov ecx, edi
or edx, 0xffffffff
call fcn.0041b98b
mov eax, dword [ebp - 0x9c]
mov edi, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xa8]
mov edx, dword [eax + 0x2c]
lea eax, [edx + 1]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x24]
add eax, dword [esi + 0x18]
add eax, edx
mov edx, 0x62
mov dword [edi + 0x2c], eax
mov eax, dword [esi + 0x18]
add eax, dword [esi + 0xc]
mov dword [esp], eax
mov eax, dword [ebp - 0xa4]
call fcn.00423486
mov ecx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0xa4]
mov edx, 0x7a
call fcn.00422bbb
mov eax, dword [ebp - 0x9c]
cmp byte [eax + 0xd7], 2
je 0x45fb52
mov eax, dword [ebp - 0xc0]
mov dword [esp + 0xc], 0x10
mov dword [ebp - 0x48], 0
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xec]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x9c]
mov dword [esp], eax
call fcn.004646be
mov eax, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xa0]
or ecx, 0xffffffff
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xb8]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x9c]
call fcn.00463e25
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xa4]
call fcn.00420a25
jmp 0x45d3ee
mov eax, dword [ebp - 0xbc]
mov edx, str.RIGHT_PART_OF
mov eax, dword [eax]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0x9c]
mov edi, dword [eax + 8]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax + 0x38]
dec eax
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x9c]
mov esi, dword [ebp - 0xe4]
mov dword [eax + 0x38], esi
mov eax, dword [ebp - 0xb8]
movzx eax, byte [eax]
mov byte [ebp - 0xdc], al
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xb8]
mov eax, dword [eax + 4]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x1c]
mov dword [esp + 4], 0
mov dword [esp + 8], str.USE_TEMP_B_TREE_FOR__sORDER_BY
mov dword [ebp - 0xac], eax
add eax, 8
cmp dword [ebp - 0x44], 0
mov dword [ebp - 0xf0], eax
mov eax, 0x4f222e
cmovg eax, edx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x9c]
mov dword [esp], eax
call fcn.0042a25b
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0xc8]
mov dword [esp], eax
mov eax, edi
call fcn.0040ce58
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0xc8]
mov dword [esp], eax
mov edx, ecx
mov eax, edi
call fcn.0040cec8
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x45f2ca
mov ecx, dword [ebp - 0x3c]
mov dword [esp], eax
mov edx, 0xa
mov eax, edi
call fcn.00423486
mov edx, dword [ebp - 0xc0]
mov eax, edi
call fcn.0042392c
mov edx, dword [ebp - 0x38]
mov eax, edi
call fcn.00420a25
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0xbc], eax
mov al, byte [ebp - 0xdc]
sub eax, 9
cmp al, 1
jbe 0x45f2e9
cmp dword [ebp - 0xe0], 0xd
jne 0x45f32d
cmp dword [ebp - 0xe0], 0xa
jne 0x45f318
mov eax, dword [ebp - 0xa0]
cmp dword [eax + 0xc], 0
je 0x45f318
mov eax, dword [ebp - 0xb8]
xor ecx, ecx
mov edx, 0x4b
mov eax, dword [eax + 0xc]
mov dword [esp], eax
mov eax, edi
call fcn.00423486
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0xac], 0
mov esi, dword [eax + 0xc]
jmp 0x45f377
mov eax, dword [ebp - 0x9c]
call fcn.00404241
mov dword [ebp - 0xac], eax
mov al, byte [ebp - 0xdc]
and eax, 0xfffffffd
cmp al, 0xc
jne 0x45f364
mov eax, dword [ebp - 0x9c]
call fcn.00404241
mov dword [ebp - 0xa8], 0
mov esi, eax
jmp 0x45f377
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0x9c]
call fcn.00404268
mov esi, eax
mov eax, dword [ebx]
sub eax, dword [ebp - 0x44]
test byte [ebp - 0x28], 1
mov dword [ebp - 0xec], eax
je 0x45f45a
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x9c]
mov dword [ebp - 0xe8], 0
mov eax, dword [eax + 0x2c]
lea ebx, [eax + 1]
mov eax, dword [ebp - 0x9c]
mov dword [eax + 0x2c], ebx
mov eax, dword [eax + 0x28]
mov dword [ebp - 0xa0], eax
inc eax
cmp dword [ebp - 0x38], 0
mov dword [ecx + 0x28], eax
je 0x45f3d6
mov edx, 0xf
mov eax, edi
call fcn.00422bff
mov dword [ebp - 0xe8], eax
mov ecx, dword [ebp - 0xec]
mov eax, dword [ebp - 0xa8]
mov edx, 0x79
mov dword [esp], ebx
lea eax, [eax + ecx + 1]
mov ecx, dword [ebp - 0xa0]
mov dword [esp + 4], eax
mov eax, edi
call fcn.00422b40
cmp dword [ebp - 0xe8], 0
je 0x45f415
mov edx, dword [ebp - 0xe8]
mov eax, edi
call fcn.004133b0
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xbc]
mov edx, 0x22
mov dword [esp], eax
mov eax, edi
call fcn.00423486
inc eax
mov ecx, dword [ebp - 0xbc]
mov dword [esp], ebx
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0xa0]
mov edx, 0x85
mov dword [esp + 4], eax
mov eax, edi
call fcn.00422b40
xor eax, eax
jmp 0x45f4c5
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xbc]
mov edx, 0x23
mov dword [esp], eax
mov eax, edi
call fcn.00423486
inc eax
mov ecx, dword [ebp - 0xe4]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0xa0]
mov edx, dword [eax + 0xc]
mov eax, edi
call fcn.00428a57
mov eax, dword [ebp - 0xa0]
cmp dword [eax + 0xc], 0
jle 0x45f4b4
mov ecx, dword [eax + 8]
mov edx, 0x56
mov dword [esp], 0xffffffff
mov eax, edi
call fcn.00423486
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0xa0], eax
mov eax, 1
add eax, dword [ebp - 0xec]
xor edx, edx
mov dword [ebp - 0xf4], eax
dec eax
cmp dword [ebp - 0xa8], edx
jle 0x45f4f1
imul ecx, edx, 0x14
mov ebx, dword [ebp - 0xf0]
cmp word [ebx + ecx + 0x10], 1
adc eax, 0
inc edx
jmp 0x45f4d4
mov ebx, dword [ebp - 0xa8]
dec ebx
mov dword [ebp - 0xec], ebx
imul ebx, dword [ebp - 0xa8], 0x14
add ebx, dword [ebp - 0xf0]
cmp dword [ebp - 0xec], 0
js 0x45f579
movzx edx, word [ebx - 4]
lea ecx, [eax - 1]
mov dword [ebp - 0xf0], ecx
test dx, dx
je 0x45f52f
mov dword [ebp - 0xf0], eax
lea eax, [edx - 1]
mov ecx, dword [ebp - 0xec]
mov dword [esp], eax
mov eax, edi
sub ebx, 0x14
lea edx, [ecx + esi]
mov ecx, dword [ebp - 0xa0]
mov dword [esp + 4], edx
mov edx, 0x5e
call fcn.00422b40
mov eax, dword [ebx + 4]
mov dword [esp + 4], 0x4f3149
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.004289c4
dec dword [ebp - 0xec]
mov eax, dword [ebp - 0xf0]
jmp 0x45f50b
mov ecx, dword [ebp - 0xc8]
mov eax, edi
mov dword [esp], 0xffffffff
mov edx, ecx
call fcn.0040ce58
mov al, byte [ebp - 0xdc]
sub eax, 0xa
cmp al, 5
ja case.0x45f5a3.3
movzx eax, al
jmp dword [eax*4 + 0x4f5168]
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xa0]
mov edx, 0x5e
mov dword [esp + 4], esi
mov dword [esp], eax
mov eax, edi
call fcn.00422b40
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xd8]
mov edx, 0x7f
mov dword [esp], eax
mov eax, edi
call fcn.00423486
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xd8]
mov edx, pe_nt_image_headers32
mov dword [esp], esi
mov dword [esp + 4], eax
mov eax, edi
call fcn.00422b40
mov edx, 8
mov eax, edi
call fcn.00403895
jmp case.0x45f5a3.0
mov eax, dword [ebp - 0xa8]
mov ecx, esi
mov edx, 0x61
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xb8]
mov eax, dword [eax + 0x14]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xac]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xa8]
mov dword [esp], eax
mov eax, edi
call fcn.00422c58
mov eax, dword [ebp - 0xa8]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xac]
mov dword [esp], eax
jmp 0x45f6dd
mov eax, dword [ebp - 0xb8]
mov eax, dword [eax + 8]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x9c]
call fcn.00404241
mov ebx, eax
mov eax, dword [ebp - 0xa0]
mov edx, dword [ebp - 0xa8]
mov dword [esp + 4], ebx
shr eax, 0x1f
sub edx, eax
lea ecx, [esi + eax]
mov eax, edi
mov dword [esp], edx
mov edx, 0x61
call fcn.00422b40
cmp dword [ebp - 0xa0], 0
jns 0x45f6cc
mov ecx, dword [ebp - 0xd8]
mov dword [esp + 4], esi
mov edx, pe_nt_image_headers32
mov dword [esp], ebx
mov eax, edi
call fcn.00422b40
jmp case.0x45f5a3.0
mov eax, dword [ebp - 0xa0]
mov dword [esp + 4], esi
mov dword [esp], ebx
mov dword [esp + 8], eax
mov ecx, dword [ebp - 0xd8]
mov edx, 0x8a
mov eax, edi
call fcn.00422c1d
jmp case.0x45f5a3.0
cmp dword [ebp - 0xe0], 9
mov eax, dword [ebp - 0xb8]
jne 0x45f723
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0xa8]
mov edx, 0x54
mov dword [esp], eax
mov eax, edi
call fcn.00423486
cmp dword [ebp - 0xac], 0
je 0x45f777
jmp 0x45f759
mov ecx, dword [eax + 4]
mov edx, 0xc
mov eax, edi
call fcn.00422bbb
cmp dword [ebp - 0xac], 0
je 0x45f777
cmp dword [ebp - 0xe0], 0xb
jne 0x45f759
mov ecx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0x9c]
mov edx, esi
call fcn.0040dbb9
jmp 0x45f766
mov eax, dword [ebp - 0x9c]
mov edx, esi
call fcn.0040db98
mov edx, dword [ebp - 0xac]
mov eax, dword [ebp - 0x9c]
call fcn.0040db98
mov edx, dword [ebp - 0xe4]
mov eax, edi
call fcn.00420a25
test byte [ebp - 0x28], 1
mov eax, dword [ebp - 0xe8]
mov edx, 0x25
mov ecx, dword [ebp - 0xbc]
mov dword [esp], eax
jne 0x45f7a3
mov edx, 0x27
mov eax, edi
call fcn.00423486
mov eax, dword [edi + 0x6c]
mov edx, dword [ebp - 0xc8]
mov dword [esp], 0xffffffff
lea ecx, [eax - 1]
mov eax, edi
call fcn.0040ce58
mov ecx, dword [ebp - 0x3c]
test ecx, ecx
je 0x45f7d7
mov edx, 0x43
mov eax, edi
call fcn.00422bbb
mov edx, dword [ebp - 0xc0]
mov eax, edi
call fcn.00420a25
jmp 0x45d428
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0x9c]
call fcn.0046cd31
mov ebx, eax
mov eax, dword [ebp - 0xa0]
cmp dword [eax + 0x38], 0
je 0x45d460
mov eax, ebx
jmp 0x45fbb3
mov eax, dword [ebp - 0xa4]
mov edx, 0xb
mov esi, dword [eax + 0x6c]
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax + 0x2c]
lea edi, [esi + 1]
lea ecx, [eax + 1]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x9c]
mov dword [eax + 0x2c], ecx
mov eax, dword [ebp - 0xa4]
mov dword [ebx + 0x1c], ecx
mov dword [esp + 4], edi
mov dword [esp], 0
call fcn.00422b40
mov eax, dword [ebp - 0xa4]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x4f4fc8
mov dword [esp], eax
call fcn.004289c4
mov eax, dword [ebx + 0x1c]
mov dword [ebx + 0x18], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], str.CO_ROUTINE___S
mov dword [esp + 4], 1
mov byte [ebp - 0x68], 0xd
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov dword [esp], eax
call fcn.0042a25b
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0x9c]
lea ecx, [ebp - 0x68]
call fcn.0045bcae
mov edi, dword [ebp - 0xb4]
mov eax, dword [ebx + 0x10]
mov dx, word [edi + 2]
mov edi, dword [ebp - 0xa8]
mov word [eax + 0x26], dx
imul eax, dword [ebp - 0xac], 0x48
or byte [edi + eax + 0x30], 0x20
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebx + 0x1c]
mov dword [ebx + 0x20], eax
mov eax, dword [ebp - 0xa4]
call fcn.00422bd7
mov eax, dword [ebp - 0xa4]
mov edx, esi
call fcn.004133b0
mov eax, dword [ebp - 0x9c]
mov byte [eax + 0x13], 0
mov dword [eax + 0x1c], 0
jmp 0x45dd3b
cmp dword [esi + 0x1c], 0
jne 0x45fadd
cmp dword [esi + 0x24], 1
jne 0x45f97f
mov eax, dword [esi + 0x20]
cmp dword [eax + 8], 0
js 0x45f97f
mov eax, dword [eax]
mov edi, dword [eax + 0x14]
cmp edi, 1
sbb ecx, ecx
not ecx
and cx, 0x500
jmp 0x45f983
inc eax
cmp eax, ecx
jge 0x45fae7
mov edx, eax
shl edx, 4
add edx, dword [esi + 0x20]
mov ebx, dword [edx]
test byte [ebx + 7], 1
jne 0x45f95d
mov edx, dword [edx + 4]
test byte [edx + 4], 0x20
je 0x45f95d
xor ecx, ecx
xor edi, edi
xor ebx, ebx
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0xac], ecx
mov ecx, dword [ebp - 0x9c]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
mov dword [esi + 0xc], edx
mov edx, dword [esi + 0x24]
add edx, dword [esi + 0x18]
add eax, edx
mov edx, esi
mov dword [ecx + 0x2c], eax
mov eax, ecx
call fcn.004eca3d
movzx eax, byte [ebp - 0xc8]
mov ecx, dword [ebp - 0xac]
mov edx, dword [ebp - 0xa8]
mov dword [esp + 4], edi
mov dword [esp + 0x10], 0
or eax, ecx
mov ecx, dword [ebp - 0xdc]
movzx eax, ax
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xa0]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xb4]
mov dword [esp], eax
mov eax, dword [ebp - 0x9c]
call fcn.00467a0e
test eax, eax
mov edi, eax
je 0x45d280
movzx eax, byte [eax + 0x2f]
mov ecx, esi
mov edx, ebx
mov dword [ebp - 0xa8], eax
mov dword [esp], eax
mov eax, dword [ebp - 0x9c]
call fcn.004ecc61
cmp dword [ebp - 0xa8], 0
je 0x45fa50
mov eax, dword [esi + 0x20]
test eax, eax
je 0x45fa50
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0xa8]
mov dword [esp], eax
mov eax, dword [ebp - 0x9c]
call fcn.00411bdd
test ebx, ebx
je 0x45fa6c
mov eax, dword [ebp - 0xa4]
mov dword [esp], ebx
mov ecx, 1
mov edx, 0x47
call fcn.00423486
cmp byte [ebp - 0xc8], 0
je 0x45fac1
test byte [edi + 0x30], 4
je 0x45fac1
cmp byte [edi + 0x2d], 0
je 0x45fac1
movzx edx, byte [edi + 0x2c]
xor ecx, ecx
lea eax, [edx - 1]
imul edx, edx, 0x68
add edx, edi
cmp eax, 0xffffffff
je 0x45fab3
mov ebx, dword [edx + ecx + 0x2e0]
sub ecx, 0x68
test byte [ebx + 0x28], 4
je 0x45fab0
imul eax, eax, 0x68
mov edx, dword [edi + eax + 0x308]
jmp 0x45fab6
dec eax
jmp 0x45fa8f
mov edx, dword [edi + 0x20]
mov eax, dword [ebp - 0xa4]
call fcn.0042392c
mov eax, edi
call fcn.0046b8a2
mov eax, dword [ebp - 0x9c]
mov edx, esi
mov eax, dword [eax + 8]
call fcn.004ec869
jmp 0x45f139
mov ecx, dword [esi + 0x24]
xor eax, eax
jmp 0x45f95e
jne 0x45f97f
mov eax, dword [ebp - 0x9c]
xor ecx, ecx
mov edx, 0x47
xor edi, edi
mov eax, dword [eax + 0x2c]
lea ebx, [eax + 1]
mov eax, dword [ebp - 0x9c]
mov dword [eax + 0x2c], ebx
mov eax, dword [ebp - 0xa4]
mov dword [esp], ebx
call fcn.00423486
xor ecx, ecx
jmp 0x45f985
test byte [eax + 0x38], 4
jne 0x45fb4a
mov edi, dword [ebp - 0xac]
mov edx, dword [eax + 0x30]
cmp dx, word [edi + 0x28]
jge 0x45fb4a
cmp dword [eax + 0x24], 0
jne 0x45fb4a
test ebx, ebx
je 0x45fb48
cmp dx, word [ebx + 0x30]
cmovl ebx, eax
jmp 0x45fb4a
mov ebx, eax
mov eax, dword [eax + 0x14]
jmp 0x45f05f
test ebx, ebx
je 0x45fb6c
mov eax, dword [ebp - 0xac]
test byte [eax + 0x1c], 0x80
je 0x45fbaa
mov al, byte [ebx + 0x38]
and eax, 3
cmp al, 2
jne 0x45fbaa
mov edx, 0x4f222e
mov eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0xac]
mov dword [esp + 0x14], edx
mov eax, dword [eax]
mov dword [esp + 8], str.SCAN__s_s_s
mov dword [esp + 4], 0
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x9c]
mov dword [esp], eax
call fcn.0042a25b
jmp 0x45f139
mov edx, dword [ebx]
mov eax, 0x4f4f3e
jmp 0x45fb73
add esp, 0x13c
pop ebx
pop esi
pop edi
pop ebp
ret