Function at 0x46d760
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x8c
mov eax, dword [0x583f80]
xor eax, esp
mov dword [esp + 0x88], eax
mov eax, ecx
mov ecx, dword [ebp + 8]
push ebx
mov ebx, dword [eax + 8]
push esi
mov esi, dword [ebx + 0xc]
push edi
mov edi, dword [esi + 0x3c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x54], ecx
mov ecx, dword [eax]
lea eax, [edi + 1]
mov dword [esi + 0x3c], eax
lea eax, [edi - 1]
mov dword [esp + 0x10], edx
mov dword [esp + 0x58], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], ebx
test edi, eax
jne 0x46d7d8
mov edx, dword [esi + 0x40]
mov ecx, dword [esi]
lea eax, [edi*8 + 4]
push 0
push eax
call fcn.0040c2b0
add esp, 8
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x40]
test eax, eax
je 0x46d7e6
mov dword [eax + edi*4], 0xffffffff
mov esi, dword [ebx + 0xc]
or ecx, 0xffffffff
mov eax, ecx
sub eax, edi
mov edi, dword [esi + 0x3c]
mov dword [esp + 0x2c], eax
lea eax, [edi + 1]
mov dword [esi + 0x3c], eax
lea eax, [edi - 1]
test edi, eax
jne 0x46d821
mov edx, dword [esi + 0x40]
mov ecx, dword [esi]
lea eax, [edi*8 + 4]
push 0
push eax
call fcn.0040c2b0
add esp, 8
mov dword [esi + 0x40], eax
or ecx, 0xffffffff
mov eax, dword [esi + 0x40]
test eax, eax
je 0x46d82f
mov dword [eax + edi*4], 0xffffffff
sub ecx, edi
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x10]
movzx eax, byte [ecx + 4]
mov edx, dword [ecx + 0x34]
mov esi, dword [ecx + 0x30]
mov dword [esp + 0x30], edx
mov edx, dword [esi]
mov dword [esp + 0x28], eax
mov dword [esp + 0x34], esi
mov dword [esp + 0x3c], edx
cmp eax, 0x7c
je 0x46d94a
mov eax, dword [esp + 0x44]
mov edi, 1
cmp byte [eax + 0x49], 0
jne 0x46d94a
lea eax, [edx + edx*2]
shl eax, 3
mov dword [esp + 0x4c], eax
jmp 0x46d880
mov eax, dword [ecx]
cmp edi, dword [eax]
jg 0x46d94a
xor ecx, ecx
test edx, edx
jle 0x46d8ae
lea edx, [esi + 0x18]
mov esi, dword [esp + 0x3c]
movzx eax, word [edx]
cmp eax, edi
je 0x46d8a6
inc ecx
add edx, 0x18
cmp ecx, esi
jl 0x46d897
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0x3c]
cmp ecx, edx
jne 0x46d937
mov ecx, dword [esp + 0x44]
push 0
push 0x35
call fcn.0040c0f0
mov esi, eax
add esp, 8
test esi, esi
je 0x46d9ac
push 0x34
push 0
push esi
call fcn.00507b80
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x20]
or eax, 0xffffffff
add esp, 0xc
mov byte [esi], 0x8f
mov word [esi + 0x22], ax
mov byte [esi + 0x34], 0
or dword [esi + 4], 0x400
push esi
mov dword [esi + 0x18], 1
mov dword [esi + 8], edi
call fcn.004444a0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
mov esi, eax
add esp, 4
mov dword [esp + 0x34], esi
mov dword [ecx + 0x30], esi
test esi, esi
je 0x46d93b
mov ecx, dword [esp + 0x4c]
inc edx
mov word [ecx + esi + 0x18], di
add ecx, 0x18
mov dword [esp + 0x3c], edx
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x44]
inc edi
cmp byte [eax + 0x49], 0
je 0x46d880
mov ecx, dword [esp + 0x44]
lea eax, [edx*4 + 4]
push 0
push eax
call fcn.0040c0f0
add esp, 8
mov dword [esp + 0x4c], eax
test eax, eax
je 0x46d9c6
mov edi, dword [esp + 0x3c]
mov ecx, 1
mov dword [eax], edi
cmp edi, ecx
jl 0x46d993
lea edx, [esi + 0x18]
mov ebx, eax
lea esp, [esp]
movzx eax, word [edx]
dec eax
mov dword [ebx + ecx*4], eax
inc ecx
lea edx, [edx + 0x18]
cmp ecx, edi
jle 0x46d980
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x18]
mov edx, edi
call fcn.0046c080
add esp, 4
mov dword [esp + 0x34], eax
jmp 0x46d9d2
mov eax, 7
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x88]
xor ecx, esp
call fcn.004fcf30
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x10]
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x14]
mov dword [edi + 0x30], esi
mov ecx, dword [eax]
push 0
mov edx, esi
call fcn.00443d90
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x14]
add esp, 4
mov dword [ecx + 0x30], eax
cmp edi, 0x7c
jne 0x46da08
mov dword [esp + 0x60], 0
jmp 0x46db07
mov eax, dword [esi]
mov ecx, dword [esp + 0x14]
mov edi, dword [eax]
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x5c], edi
lea edx, [eax + 1]
inc eax
add eax, edi
mov dword [ecx + 0x2c], eax
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x88]
mov dword [esp + 0x60], edx
cmp dword [eax + 0x30], ecx
jg 0x46da48
push 0
push edx
push 0
mov edx, 0x46
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
jmp 0x46da7a
lea eax, [ecx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x44]
push 1
mov edx, edi
call fcn.0046a9d0
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
je 0x46db03
xor esi, esi
test edi, edi
jle 0x46daff
mov ebx, dword [esp + 0x10]
lea ecx, [eax + 0x14]
xor edi, edi
mov dword [esp + 0x18], ecx
mov edx, dword [ebx + 0x34]
test edx, edx
je 0x46dac3
mov ecx, dword [esp + 0x14]
push esi
call fcn.0046c040
mov ecx, dword [esp + 0x1c]
add esp, 4
test eax, eax
jne 0x46dadc
jmp 0x46dac5
xor eax, eax
mov edx, dword [ebx]
cmp esi, dword [edx]
jge 0x46dadc
mov edx, dword [edx + edi + 4]
mov ecx, dword [esp + 0x14]
call fcn.00442590
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
mov eax, dword [esp + 0x24]
inc esi
mov eax, dword [eax + 0x10]
add ecx, 4
mov byte [esi + eax - 1], 0
add edi, 0x18
mov dword [esp + 0x18], ecx
cmp esi, dword [esp + 0x5c]
jl 0x46daa5
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x34], 0
mov dword [eax + 0x38], 0
push str.ORDER
push dword [esi + 0x30]
mov edx, esi
call fcn.00441a10
mov eax, dword [esp + 0x38]
add esp, 8
cmp dword [eax + 0x34], 0
jne 0x46db4f
mov ecx, dword [esp + 0x14]
push str.ORDER
push dword [eax + 0x30]
mov edx, eax
call fcn.00441a10
add esp, 8
push dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
mov edx, esi
call fcn.0046bef0
add esp, 4
cmp dword [esi + 0xc], 0
je 0x46dc43
cmp edi, 0x7c
jne 0x46dc43
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov edi, dword [ecx + 0x2c]
inc edi
lea esi, [edi + 1]
mov dword [ecx + 0x2c], esi
mov edx, dword [eax + 0x10]
mov dword [esp + 0x38], esi
test edx, edx
je 0x46db94
inc edx
jmp 0x46db97
mov edx, dword [eax + 0xc]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x46dbba
push 0
push edi
push edx
mov edx, 0x4e
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
jmp 0x46dbe8
lea eax, [ecx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x4e
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x46dc0f
push 0
push esi
push edi
mov edx, 0x4e
mov ecx, ebx
call fcn.0042d7a0
mov esi, dword [esp + 0x1c]
add esp, 0xc
jmp 0x46dc4d
lea eax, [ecx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x10]
mov dword [eax + ecx*4], 0x4e
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x46dc4d
mov dword [esp + 0x38], 0
xor edi, edi
mov edx, dword [esi + 0x3c]
test edx, edx
je 0x46dc5d
mov ecx, dword [esp + 0x44]
call fcn.00443790
mov eax, dword [esp + 0x14]
mov dword [esi + 0x3c], 0
inc dword [eax + 0x2c]
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x20], ecx
lea edx, [ecx + 1]
mov dword [esp + 0x1c], edx
lea eax, [edx + 2]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x50]
mov dword [eax + 0x2c], ebx
movzx eax, byte [esi + 4]
mov byte [esp + 0x7c], 0xd
mov dword [esp + 0x80], ecx
mov dword [esp + 0x8c], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov byte [esp + 0x64], 0xd
mov dword [esp + 0x68], edx
mov dword [esp + 0x74], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
sub eax, 0x7c
je 0x46dcfd
dec eax
je 0x46dcf6
dec eax
je 0x46dcef
mov eax, str.UNION
jmp 0x46dd02
mov eax, str.INTERSECT
jmp 0x46dd02
mov eax, str.EXCEPT
jmp 0x46dd02
mov eax, str.UNION_ALL
push eax
push str.MERGE___s_
push 1
push dword [esp + 0x20]
call fcn.0042dc80
mov ebx, dword [esp + 0x50]
add esp, 0x10
mov esi, dword [ebx + 0x88]
mov eax, dword [ebx + 0xc]
lea edx, [esi + 1]
cmp dword [eax + 0x30], esi
jg 0x46dd45
push edx
push 0
push dword [esp + 0x28]
mov edx, 0xd
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
mov esi, eax
jmp 0x46dd78
mov eax, dword [ebx + 0x58]
mov dword [ebx + 0x88], edx
mov ebx, dword [esp + 0x20]
lea ecx, [esi + esi*4]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x40]
mov dword [eax + ecx*4], 0xd
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x30]
push str.LEFT
mov dword [eax + 0xc], edi
mov edi, dword [esp + 0x18]
push 1
push edi
call fcn.0042dc80
mov edx, dword [esp + 0x3c]
add esp, 0xc
lea eax, [esp + 0x7c]
push eax
mov ecx, edi
call fcn.00471580
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x88]
add esp, 4
cmp dword [eax + 0x30], ecx
jg 0x46ddcd
push 0
push 0
push dword [esp + 0x28]
mov edx, 0x43
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
jmp 0x46de03
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x43
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx + 0xc]
mov byte [eax + 0x13], 0
mov eax, dword [ebx + 0xc]
mov dword [eax + 0x1c], 0
mov edx, dword [ebx + 0x88]
test esi, esi
jns 0x46de21
lea esi, [edx - 1]
mov eax, dword [ebx]
cmp byte [eax + 0x49], 0
je 0x46de30
mov eax, 0x5890ec
jmp 0x46de39
mov eax, dword [ebx + 0x58]
lea ecx, [esi + esi*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov ecx, dword [ebx + 0x88]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x5c], ecx
lea esi, [ecx + 1]
cmp dword [eax + 0x30], ecx
jg 0x46de6d
push esi
push 0
push dword [esp + 0x24]
mov edx, 0xd
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
mov dword [esp + 0x5c], eax
jmp 0x46de9c
mov eax, dword [ebx + 0x58]
mov edx, dword [esp + 0x1c]
lea ecx, [ecx + ecx*4]
mov dword [ebx + 0x88], esi
mov dword [eax + ecx*4], 0xd
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
mov edi, dword [ecx + 0xc]
mov esi, dword [ecx + 0x10]
push str.RIGHT
push 1
push dword [esp + 0x1c]
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], 0
call fcn.0042dc80
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
add esp, 0xc
lea eax, [esp + 0x64]
push eax
call fcn.00471580
mov eax, dword [esp + 0x14]
add esp, 4
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], esi
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x46df0d
push 0
push 0
push dword [esp + 0x24]
mov edx, 0x43
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
jmp 0x46df43
mov edx, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0x43
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx + 0xc]
push dword [esp + 0x2c]
mov edi, dword [esp + 0x64]
push dword [esp + 0x28]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov byte [eax + 0x13], 0
mov eax, dword [ebx + 0xc]
push edi
mov dword [eax + 0x1c], 0
mov eax, dword [esp + 0x28]
inc eax
push eax
push dword [esp + 0x64]
lea eax, [esp + 0x90]
push eax
mov edx, esi
call fcn.0046d330
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x40]
add esp, 0x18
cmp eax, 0x7c
je 0x46df97
cmp eax, 0x7b
jne 0x46dfbf
push dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
push dword [esp + 0x28]
lea eax, [esp + 0x6c]
push edi
push dword [esp + 0x5c]
mov edx, esi
push dword [esp + 0x64]
push eax
call fcn.0046d330
add esp, 0x18
mov dword [esp + 0x58], eax
mov edi, dword [esp + 0x24]
test edi, edi
je 0x46e064
dec dword [edi]
jne 0x46e064
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x46e00c
cmp dword [ecx + 0x1d8], 0
je 0x46dfec
mov edx, edi
call fcn.0040bd30
jmp 0x46e064
cmp edi, dword [ecx + 0x128]
jb 0x46e00c
cmp edi, dword [ecx + 0x12c]
jae 0x46e00c
mov eax, dword [ecx + 0x124]
mov dword [edi], eax
mov dword [ecx + 0x124], edi
jmp 0x46e064
cmp dword [0x586ae0], 0
je 0x46e05a
mov eax, dword [0x588558]
test eax, eax
je 0x46e028
push eax
call dword [0x586b3c]
add esp, 4
push edi
call dword [0x586b18]
sub dword [0x588588], eax
dec dword [0x5885ac]
add esp, 4
push edi
call dword [0x586b10]
mov eax, dword [0x588558]
add esp, 4
test eax, eax
je 0x46e064
push eax
call dword [0x586b44]
jmp 0x46e061
push edi
call dword [0x586b10]
add esp, 4
mov eax, dword [esp + 0x28]
cmp eax, 0x7d
je 0x46e256
cmp eax, 0x7e
je 0x46e256
mov eax, dword [ebx + 0xc]
mov edi, dword [ebx + 0x88]
cmp dword [eax + 0x30], edi
jg 0x46e0a5
push 0
push dword [esp + 0x5c]
mov edx, 0xc
push dword [esp + 0x58]
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
mov edi, eax
jmp 0x46e0db
mov edx, dword [esp + 0x50]
lea eax, [edi + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x58]
mov dword [eax + ecx*4], 0xc
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [ebx + 0x88]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x38], edx
cmp dword [eax + 0x30], edx
jg 0x46e10c
push 0
push dword [esp + 0x30]
mov edx, 0xe
push dword [esp + 0x24]
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
mov dword [esp + 0x38], eax
jmp 0x46e142
lea eax, [edx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x2c]
mov dword [eax + ecx*4], 0xe
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x46e166
push 0
push edi
push 0
mov edx, 0xb
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
jmp 0x46e198
lea eax, [ecx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x30]
movzx edx, word [esi + 6]
movzx ecx, word [eax + 6]
cmp dx, cx
jl 0x46e201
movsx esi, cx
movsx ecx, dx
lea eax, [esi + 0x31]
cmp ecx, eax
jle 0x46e1c9
mov ecx, dword [esp + 0x10]
mov eax, edx
mov word [ecx + 6], ax
mov eax, dword [esp + 0x28]
jmp 0x46e262
lea eax, [esi + 0x1f]
cmp ecx, eax
jle 0x46e1e4
mov ecx, dword [esp + 0x10]
lea eax, [edx + 1]
movzx eax, ax
mov word [ecx + 6], ax
mov eax, dword [esp + 0x28]
jmp 0x46e262
sub ecx, esi
movzx eax, byte [ecx + str._n_n_t_t_b_b_a_a_a]
mov ecx, dword [esp + 0x10]
add ax, dx
movzx eax, ax
mov word [ecx + 6], ax
mov eax, dword [esp + 0x28]
jmp 0x46e262
movsx esi, dx
movsx edx, cx
lea eax, [esi + 0x31]
cmp edx, eax
jle 0x46e21e
mov eax, ecx
mov ecx, dword [esp + 0x10]
mov word [ecx + 6], ax
mov eax, dword [esp + 0x28]
jmp 0x46e262
lea eax, [esi + 0x1f]
cmp edx, eax
jle 0x46e239
lea eax, [ecx + 1]
mov ecx, dword [esp + 0x10]
movzx eax, ax
mov word [ecx + 6], ax
mov eax, dword [esp + 0x28]
jmp 0x46e262
sub edx, esi
movzx eax, byte [edx + str._n_n_t_t_b_b_a_a_a]
add ax, cx
mov ecx, dword [esp + 0x10]
movzx eax, ax
mov word [ecx + 6], ax
mov eax, dword [esp + 0x28]
jmp 0x46e262
mov ecx, dword [esp + 0x2c]
mov edi, ecx
mov dword [esp + 0x38], ecx
mov ecx, esi
cmp eax, 0x7e
jne 0x46e284
mov eax, dword [esp + 0x30]
mov esi, edi
movzx eax, word [eax + 6]
cmp word [ecx + 6], ax
jle 0x46e3a1
mov word [ecx + 6], ax
jmp 0x46e3a1
mov eax, dword [ebx + 0xc]
mov esi, dword [ebx + 0x88]
cmp dword [eax + 0x30], esi
jg 0x46e2b1
mov eax, dword [esp + 0x1c]
push 0
push dword [esp + 0x1c]
inc eax
push eax
mov edx, 0xc
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
mov esi, eax
jmp 0x46e2ec
mov edx, dword [esp + 0x1c]
lea eax, [esi + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
mov ebx, dword [esp + 0x40]
lea ecx, [esi + esi*4]
inc edx
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4], 0xc
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x46e315
push 0
push dword [esp + 0x30]
mov edx, 0xe
push dword [esp + 0x28]
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
jmp 0x46e34b
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x2c]
mov dword [eax + ecx*4], 0xe
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x46e36f
push 0
push esi
push 0
mov edx, 0xb
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
jmp 0x46e3a1
lea eax, [ecx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [ebx + 0x88]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x24], edx
cmp dword [eax + 0x30], edx
jg 0x46e3d4
mov eax, dword [esp + 0x1c]
push 0
push dword [esp + 0x1c]
inc eax
push eax
mov edx, 0xc
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
mov dword [esp + 0x24], eax
jmp 0x46e40f
lea ecx, [edx + edx*4]
lea eax, [edx + 1]
mov edx, dword [esp + 0x1c]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
mov ebx, dword [esp + 0x40]
inc edx
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4], 0xc
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x46e435
push 0
push edi
push dword [esp + 0x28]
mov edx, 0xe
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
jmp 0x46e467
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0xe
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x46e48e
push 0
push dword [esp + 0x4c]
mov edx, 0xb
push 0
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
jmp 0x46e4c4
mov edx, dword [esp + 0x48]
lea eax, [ecx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x28]
cmp eax, 0x7c
jne 0x46e4da
mov eax, dword [esp + 0x24]
mov dword [esp + 0x18], eax
jmp 0x46e5ae
cmp eax, 0x7e
jne 0x46e4f1
mov eax, dword [esp + 0x24]
mov dword [esp + 0x18], eax
inc eax
mov dword [esp + 0x24], eax
jmp 0x46e5ae
mov edx, dword [ebx + 0x88]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x18], edx
cmp dword [eax + 0x30], edx
jg 0x46e51f
push 0
push edi
push dword [esp + 0x28]
mov edx, 0xe
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
mov dword [esp + 0x18], eax
jmp 0x46e551
lea eax, [edx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4], 0xe
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x46e578
push 0
push dword [esp + 0x4c]
mov edx, 0xb
push 0
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
jmp 0x46e5ae
mov edx, dword [esp + 0x48]
lea eax, [ecx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x28]
mov ecx, dword [ebx + 0x88]
mov dword [esp + 0x54], ecx
cmp eax, 0x7c
je 0x46e5c6
cmp eax, 0x7b
jne 0x46e61f
mov eax, dword [ebx + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x46e5e9
push 0
push dword [esp + 0x5c]
mov edx, 0xc
push dword [esp + 0x58]
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
jmp 0x46e61f
mov edx, dword [esp + 0x50]
lea eax, [ecx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x58]
mov dword [eax + ecx*4], 0xc
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x88]
mov edi, dword [esp + 0x1c]
cmp dword [eax + 0x30], ecx
jg 0x46e646
push 0
push esi
push edi
mov edx, 0xe
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
jmp 0x46e674
lea eax, [ecx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0xe
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x46e69b
push 0
push dword [esp + 0x4c]
mov edx, 0xb
push 0
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
jmp 0x46e6d1
mov edx, dword [esp + 0x48]
lea eax, [ecx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x5c]
mov edx, dword [ebx + 0x88]
test ecx, ecx
jns 0x46e6e2
lea ecx, [edx - 1]
mov eax, dword [ebx]
cmp byte [eax + 0x49], 0
je 0x46e6f1
mov eax, 0x5890ec
jmp 0x46e6fa
mov eax, dword [ebx + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x46e727
mov edx, dword [esp + 0x38]
push 0
push edx
push dword [esp + 0x28]
mov edx, 0xe
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
jmp 0x46e75d
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x38]
mov dword [eax + ecx*4], 0xe
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x46e780
push 0
push esi
push edi
mov edx, 0xe
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
jmp 0x46e7ae
lea eax, [ecx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0xe
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0x40]
test ecx, ecx
je 0x46e7cd
mov eax, dword [esp + 0x48]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [ebx + 0x88]
mov dword [ecx], eax
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 0x88]
cmp dword [eax + 0x30], edx
jg 0x46e7f4
push 0
push 0
push 0
mov edx, 0x56
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
mov edx, eax
jmp 0x46e82a
lea eax, [edx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4], 0x56
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebx]
cmp byte [ecx + 0x49], 0
je 0x46e845
push dword [esp + 0x4c]
mov edx, 0xfffffff1
call fcn.0042e400
add esp, 4
jmp 0x46e883
test edx, edx
jns 0x46e850
mov edx, dword [ebx + 0x88]
dec edx
mov eax, dword [ebx + 0x58]
lea ecx, [edx + edx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x46e874
push 0xfffffffffffffff1
push dword [esp + 0x50]
mov edx, eax
mov ecx, ebx
call fcn.0042e590
add esp, 8
jmp 0x46e883
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x46e883
mov dword [eax + 0x10], ecx
mov byte [eax + 1], 0xf1
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 0x88]
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x84]
cmp dword [eax + 0x30], edx
jg 0x46e8b5
push dword [esp + 0x3c]
mov edx, 0x57
push esi
push edi
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
mov edx, eax
jmp 0x46e8e7
lea eax, [edx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
mov ebx, dword [esp + 0x40]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0x57
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebx]
cmp byte [ecx + 0x49], 0
je 0x46e903
mov edx, dword [esp + 0x34]
push edx
mov edx, 0xfffffff7
call fcn.0042e400
add esp, 4
jmp 0x46e93e
test edx, edx
jns 0x46e90e
mov edx, dword [ebx + 0x88]
dec edx
mov eax, dword [ebx + 0x58]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x34]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x46e933
push 0xfffffffffffffff7
push edx
mov edx, eax
mov ecx, ebx
call fcn.0042e590
add esp, 8
jmp 0x46e93e
test edx, edx
je 0x46e93e
mov dword [eax + 0x10], edx
mov byte [eax + 1], 0xf7
mov eax, dword [ebx + 0x88]
test eax, eax
jle 0x46e958
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x58]
mov edx, 1
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x88]
cmp dword [eax + 0x30], ecx
jg 0x46e985
mov edx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x1c]
push edx
push dword [esp + 0x2c]
mov edx, 0x10
mov ecx, ebx
call fcn.0042d7a0
add esp, 0xc
jmp 0x46e9bb
mov edx, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x58]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x54]
mov dword [eax + ecx*4], 0x10
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0x40]
test ecx, ecx
je 0x46e9da
mov eax, dword [esp + 0x2c]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [ebx + 0x88]
mov dword [ecx], eax
mov ebx, dword [esp + 0x10]
mov edx, dword [ebx + 0x34]
test edx, edx
je 0x46e9f3
mov ecx, dword [esp + 0x44]
push 1
call fcn.00468ae0
add esp, 4
mov eax, dword [esp + 0x30]
mov dword [ebx + 0x34], eax
mov dword [eax + 0x38], ebx
mov ebx, dword [esp + 0x14]
mov ecx, dword [ebx + 0xd0]
test ecx, ecx
jne 0x46ea0f
xor eax, eax
jmp 0x46ea38
mov edx, dword [ebx + 8]
test ecx, ecx
jns 0x46ea1d
mov ecx, dword [edx + 0x88]
dec ecx
mov eax, dword [edx]
cmp byte [eax + 0x49], 0
je 0x46ea2c
mov eax, 0x5890ec
jmp 0x46ea35
mov eax, dword [edx + 0x58]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x94]
mov dword [ebx + 0xd0], eax
xor eax, eax
cmp dword [ebx + 0x24], eax
pop edi
pop esi
setne al
pop ebx
xor ecx, esp
call fcn.004fcf30
mov esp, ebp
pop ebp
ret