Function at 0x4c81d0
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x636831
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x274
push ebx
push ebp
push esi
mov esi, ecx
mov eax, 1
mov ecx, eax
mov ebp, ecx
push edi
lea ecx, [esp + 0x14]
mov edi, eax
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0x14]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov edx, dword [esi + 0x14]
sub ecx, edi
mov edi, dword [esi + 0x18]
sub eax, ebp
add edi, eax
lea ebp, [ecx + edx]
mov edx, dword [esi]
lea eax, [esp + 0x20]
push eax
mov ecx, esi
call dword [edx + 0x14]
mov ebx, dword [eax + 4]
mov edx, dword [eax]
mov eax, ebp
sub eax, edx
mov ecx, edi
mov dword [esi + 0x14], eax
xor eax, eax
sub ecx, ebx
mov dword [esi + 0x18], ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x44], 0x6580c8
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0x10c]
mov ecx, dword [esi + 0x108]
cmp ecx, eax
lea edx, [esi + 0x108]
mov dword [esp + 0x28c], 4
je 0x4c828a
lea edi, [esp + 0x13]
push edi
push eax
push ecx
mov ecx, edx
call fcn.004b3b10
mov eax, dword [esi + 0x1b00]
xor ebp, ebp
test eax, eax
mov dword [esp + 0x28], ebp
jle 0x4c82bd
lea edi, [esi + 0x284]
push ebp
mov ecx, edi
call fcn.0048f220
cmp dword [eax + 4], 0xfffffffe
jne 0x4c82b9
mov eax, dword [esi + 0x1b00]
inc ebp
cmp ebp, eax
jl 0x4c82a0
mov dword [esp + 0x28], ebp
mov eax, dword [esi + 0x1b00]
lea ebx, [ebp + 1]
cmp ebx, eax
mov dword [esp + 0x30], ebx
jge 0x4c82f1
lea edi, [esi + 0x284]
push ebx
mov ecx, edi
call fcn.0048f220
cmp dword [eax + 4], 0xfffffffe
je 0x4c82ed
mov eax, dword [esi + 0x1b00]
inc ebx
cmp ebx, eax
jl 0x4c82d4
mov dword [esp + 0x30], ebx
mov ecx, ebx
sub ecx, ebp
cmp ecx, 3
jl 0x4c855b
add ebx, ebp
mov dword [esp + 0x20], ebx
fild dword [esp + 0x20]
fmul dword [0x6532dc]
fild dword [esi + 0x1b00]
fmul dword [0x6532dc]
fucompp
fnstsw ax
test ah, 0x44
jp 0x4c855b
mov eax, dword [esi + 0xf4]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
add eax, 0xffffffd6
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
mov edx, dword [esi]
fild dword [esp + 0x28]
lea eax, [esp + 0x14]
push eax
mov ecx, esi
fmul st(2)
fadd st(1)
fstp dword [esp + 0x2c]
fild dword [esp + 0x34]
fmul st(2)
fadd st(1)
fstp dword [esp + 0x24]
fstp st(0)
fstp st(0)
call dword [edx + 0x14]
fld dword [esp + 0x20]
fadd dword [esp + 0x28]
fmul dword [0x6532dc]
fiadd dword [eax]
call fcn.00611c14
mov ecx, dword [esi + 0x1b04]
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0xf4]
mov dword [esp + 0x1c], eax
dec ecx
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
add eax, 0xffffffd6
cdq
fimul dword [esp + 0x1c]
sub eax, edx
mov edx, dword [esi]
sar eax, 1
mov dword [esp + 0x20], eax
lea eax, [esp + 0x14]
push eax
mov ecx, esi
fiadd dword [esp + 0x24]
fstp dword [esp + 0x24]
call dword [edx + 0x14]
fild dword [eax + 4]
fiadd dword [esi + 0xf4]
fadd dword [esp + 0x20]
fadd dword [0x65dd1c]
call fcn.00611c14
mov dword [esp + 0x3c], eax
call fcn.006122e1
and eax, 0x80000001
jns 0x4c83f0
dec eax
or eax, 0xfffffffe
inc eax
dec eax
neg eax
sbb al, al
inc al
mov byte [esp + 0x40], al
call fcn.006122e1
and eax, 0x80000001
jns 0x4c840c
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
mov ecx, 0x654e58
je 0x4c841b
mov ecx, 0x65dd18
lea edx, [esp + 0x68]
lea eax, [esp + 0x78]
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], eax
mov eax, ecx
mov byte [esp + 0x28c], 0xb
lea ebx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4c8438
sub eax, ebx
add eax, ecx
push eax
push ecx
lea ecx, [esp + 0x70]
call fcn.00403b50
sub esp, 0x18
mov ecx, esp
mov dword [esp + 0x2c], esp
lea edx, [esp + 0x80]
push edx
push str.scope_decor1
mov bl, 0xc
push ecx
mov byte [esp + 0x2b0], bl
call fcn.00404f30
add esp, 0xc
lea eax, [esp + 0x98]
push eax
mov ecx, 0x6bfa98
call fcn.004a1c40
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0x290], 0xd
call fcn.0049ab80
lea ecx, [esp + 0x80]
mov byte [esp + 0x28c], bl
call fcn.0049ac10
mov eax, dword [esp + 0x7c]
lea ecx, [esp + 0x78]
cmp eax, ecx
mov byte [esp + 0x28c], 4
je 0x4c84e7
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x4c84e7
sub eax, ecx
cmp eax, 0x80
jbe 0x4c84dd
push ecx
call fcn.00611869
add esp, 4
jmp 0x4c84e7
push eax
push ecx
call fcn.005d6970
add esp, 8
mov eax, dword [esi + 0x10c]
mov ecx, dword [esi + 0x110]
cmp eax, ecx
lea ebx, [esi + 0x108]
je 0x4c8545
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], eax
test eax, eax
mov byte [esp + 0x28c], 0xe
je 0x4c8532
mov edx, dword [esp + 0x38]
mov dword [eax], edx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 4], ecx
mov dl, byte [esp + 0x40]
lea ecx, [esp + 0x44]
push ecx
lea ecx, [eax + 0xc]
mov byte [eax + 8], dl
call fcn.0049aa50
mov eax, dword [ebx + 4]
add eax, 0x18
mov byte [esp + 0x28c], 4
mov dword [ebx + 4], eax
jmp 0x4c855b
push 1
push 1
lea edx, [esp + 0x1b]
push edx
lea ecx, [esp + 0x44]
push ecx
push eax
mov ecx, ebx
call fcn.004bcfc0
mov eax, dword [esi + 0x1b04]
xor ebx, ebx
test eax, eax
jle 0x4c8589
lea edi, [esi + 0x284]
lea ecx, [ecx]
push ebx
mov ecx, edi
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
jne 0x4c8589
mov eax, dword [esi + 0x1b04]
inc ebx
cmp ebx, eax
jl 0x4c8570
mov eax, dword [esi + 0x1b04]
lea ebp, [ebx + 1]
cmp ebp, eax
jge 0x4c85b9
lea edi, [esi + 0x284]
lea esp, [esp]
push ebp
mov ecx, edi
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
je 0x4c85b9
mov eax, dword [esi + 0x1b04]
inc ebp
cmp ebp, eax
jl 0x4c85a0
mov edx, ebp
sub edx, ebx
cmp edx, 4
jl 0x4c87cd
sub esp, 0x18
mov ecx, esp
lea eax, [ecx + 0x10]
mov dword [esp + 0x2c], esp
mov dword [eax], ecx
mov dword [esp + 0x2c], ecx
mov dword [ecx + 0x14], eax
push 0x65dd04
push str.scope_decor7
mov byte [esp + 0x2ac], 0x15
call fcn.00403b50
lea eax, [esp + 0x98]
push eax
mov ecx, 0x6bfa98
mov byte [esp + 0x2a8], 4
call fcn.004a1c40
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0x290], 0x16
call fcn.0049ab80
lea ecx, [esp + 0x80]
mov byte [esp + 0x28c], 4
call fcn.0049ac10
lea ecx, [esp + 0x8c]
push ecx
lea ecx, [esp + 0x48]
call fcn.0049aca0
mov edx, dword [eax]
mov ecx, dword [edx + 4]
add ecx, eax
mov byte [esp + 0x28c], 0x17
call fcn.0044fa50
mov edi, eax
mov eax, dword [esi + 0xf4]
mov dword [esp + 0x1c], eax
add eax, 0xffffffd6
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
mov eax, dword [esi]
fild dword [esp + 0x1c]
lea ecx, [esp + 0x14]
push ecx
mov ecx, esi
fmul dword [0x654e5c]
faddp st(1)
fstp dword [esp + 0x24]
call dword [eax + 0x14]
fild dword [eax]
mov edx, dword [edi]
lea eax, [esp + 0xf8]
fadd dword [esp + 0x20]
push eax
mov ecx, edi
fsub dword [0x65dd1c]
fstp dword [esp + 0x2c]
call dword [edx + 0x10]
mov eax, dword [eax + 8]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fsubr dword [esp + 0x28]
call fcn.00611c14
lea ecx, [esp + 0x8c]
mov dword [esp + 0x38], eax
mov byte [esp + 0x28c], 4
call fcn.00450980
mov eax, dword [esi + 0xf4]
mov ecx, dword [esi + 0x1b04]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
add eax, 0xffffffd6
cdq
sub eax, edx
mov edx, ecx
sar eax, 1
sub edx, ebx
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
dec edx
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
mov eax, dword [esi]
sub ecx, ebp
fmul st(2)
dec ecx
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x14]
fadd st(1)
push ecx
mov ecx, esi
fstp dword [esp + 0x2c]
fild dword [esp + 0x24]
fmul st(2)
fadd st(1)
fstp dword [esp + 0x24]
fstp st(0)
fstp st(0)
call dword [eax + 0x14]
fild dword [eax + 4]
fld dword [esp + 0x20]
fadd dword [esp + 0x28]
fmul dword [0x6532dc]
faddp st(1)
call fcn.00611c14
mov ecx, dword [esi + 0x110]
lea edi, [esi + 0x108]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 4]
cmp eax, ecx
mov byte [esp + 0x40], 1
je 0x4c87b7
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], eax
test eax, eax
mov byte [esp + 0x28c], 0x18
je 0x4c87a4
mov edx, dword [esp + 0x38]
mov dword [eax], edx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 4], ecx
mov dl, byte [esp + 0x40]
lea ecx, [esp + 0x44]
push ecx
lea ecx, [eax + 0xc]
mov byte [eax + 8], dl
call fcn.0049aa50
mov eax, dword [edi + 4]
add eax, 0x18
mov byte [esp + 0x28c], 4
mov dword [edi + 4], eax
jmp 0x4c87cd
push 1
push 1
lea edx, [esp + 0x1b]
push edx
lea ecx, [esp + 0x44]
push ecx
push eax
mov ecx, edi
call fcn.004bcfc0
mov eax, dword [esi + 0x1b04]
xor edi, edi
test eax, eax
mov dword [esp + 0x28], edi
jle 0x4c880f
lea ebx, [esi + 0x284]
mov edx, dword [esi + 0x1b00]
push edi
dec edx
push edx
mov ecx, ebx
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
jne 0x4c880b
mov eax, dword [esi + 0x1b04]
inc edi
cmp edi, eax
jl 0x4c87e3
mov dword [esp + 0x28], edi
mov eax, dword [esi + 0x1b04]
lea ebp, [edi + 1]
cmp ebp, eax
jge 0x4c884a
lea ebx, [esi + 0x284]
mov eax, dword [esi + 0x1b00]
push ebp
dec eax
push eax
mov ecx, ebx
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
je 0x4c884a
mov eax, dword [esi + 0x1b04]
inc ebp
cmp ebp, eax
jl 0x4c8822
mov ecx, ebp
sub ecx, edi
cmp ecx, 4
jl 0x4c8a69
sub esp, 0x18
mov ecx, esp
lea eax, [ecx + 0x10]
mov dword [esp + 0x2c], esp
mov dword [eax], ecx
mov dword [esp + 0x2c], ecx
mov dword [ecx + 0x14], eax
push 0x65dd04
push str.scope_decor7
mov byte [esp + 0x2ac], 0x19
call fcn.00403b50
lea edx, [esp + 0x98]
push edx
mov ecx, 0x6bfa98
mov byte [esp + 0x2a8], 4
call fcn.004a1c40
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0x290], 0x1a
call fcn.0049ab80
lea ecx, [esp + 0x80]
mov byte [esp + 0x28c], 4
call fcn.0049ac10
lea eax, [esp + 0x8c]
push eax
lea ecx, [esp + 0x48]
call fcn.0049aca0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov byte [esp + 0x28c], 0x1b
call fcn.0044fa50
mov edx, dword [esi + 0x1b00]
mov edi, eax
mov eax, dword [esi + 0xf4]
mov dword [esp + 0x1c], eax
dec edx
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
add eax, 0xffffffd6
cdq
fimul dword [esp + 0x1c]
sub eax, edx
sar eax, 1
mov dword [esp + 0x20], eax
mov eax, dword [esi]
lea ecx, [esp + 0x14]
push ecx
mov ecx, esi
fiadd dword [esp + 0x24]
fstp dword [esp + 0x34]
call dword [eax + 0x14]
mov edx, dword [edi]
mov ebx, eax
lea eax, [esp + 0xf8]
push eax
mov ecx, edi
call dword [edx + 0x10]
mov eax, dword [eax + 8]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fiadd dword [ebx]
fiadd dword [esi + 0xf4]
fadd dword [esp + 0x30]
fadd dword [0x65dd1c]
call fcn.00611c14
lea ecx, [esp + 0x8c]
mov dword [esp + 0x38], eax
mov byte [esp + 0x28c], 4
call fcn.00450980
mov eax, dword [esi + 0xf4]
mov ecx, dword [esi + 0x1b04]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
mov edi, dword [esp + 0x28]
add eax, 0xffffffd6
cdq
sub eax, edx
mov edx, ecx
sar eax, 1
sub edx, edi
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
dec edx
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
mov eax, dword [esi]
sub ecx, ebp
dec ecx
fmul st(2)
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x14]
push ecx
fadd st(1)
mov ecx, esi
fstp dword [esp + 0x2c]
fild dword [esp + 0x24]
fmul st(2)
fadd st(1)
fstp dword [esp + 0x24]
fstp st(0)
fstp st(0)
call dword [eax + 0x14]
fild dword [eax + 4]
fld dword [esp + 0x20]
fadd dword [esp + 0x28]
fmul dword [0x6532dc]
faddp st(1)
call fcn.00611c14
mov ecx, dword [esi + 0x110]
lea edi, [esi + 0x108]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 4]
cmp eax, ecx
mov byte [esp + 0x40], 0
je 0x4c8a53
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], eax
test eax, eax
mov byte [esp + 0x28c], 0x1c
je 0x4c8a40
mov edx, dword [esp + 0x38]
mov dword [eax], edx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 4], ecx
mov dl, byte [esp + 0x40]
lea ecx, [esp + 0x44]
push ecx
lea ecx, [eax + 0xc]
mov byte [eax + 8], dl
call fcn.0049aa50
mov eax, dword [edi + 4]
add eax, 0x18
mov byte [esp + 0x28c], 4
mov dword [edi + 4], eax
jmp 0x4c8a69
push 1
push 1
lea edx, [esp + 0x1b]
push edx
lea ecx, [esp + 0x44]
push ecx
push eax
mov ecx, edi
call fcn.004bcfc0
mov eax, dword [esi + 0x1b04]
test eax, eax
mov dword [esp + 0x28], 0
jle 0x4c8e13
nop
xor ebx, ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x74], 0x6580c8
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
cmp dword [esi + 0x1b00], ebx
mov byte [esp + 0x28c], 0x29
jle 0x4c8add
mov ebp, dword [esp + 0x28]
lea edi, [esi + 0x284]
push ebp
push ebx
mov ecx, edi
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
jne 0x4c8ad9
mov eax, dword [esi + 0x1b00]
inc ebx
cmp ebx, eax
jl 0x4c8ab8
mov dword [esp + 0x30], ebx
mov eax, dword [esi + 0x1b00]
lea ebp, [ebx + 1]
cmp ebp, eax
mov dword [esp + 0x20], ebp
jge 0x4c8b1d
lea edi, [esi + 0x284]
mov edx, dword [esp + 0x28]
push edx
push ebp
mov ecx, edi
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
je 0x4c8b19
mov eax, dword [esi + 0x1b00]
inc ebp
cmp ebp, eax
jl 0x4c8af4
mov dword [esp + 0x20], ebp
lea edi, [ebx - 1]
lea ecx, [ebp + 1]
cmp edi, ecx
mov al, 1
jg 0x4c8b83
lea esp, [esp]
test al, al
je 0x4c8deb
test edi, edi
jl 0x4c8b6d
cmp edi, dword [esi + 0x1b00]
jge 0x4c8b6d
mov eax, dword [esp + 0x28]
dec eax
js 0x4c8b6d
cmp eax, dword [esi + 0x1b04]
jge 0x4c8b6d
push eax
push edi
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
jne 0x4c8b71
mov al, 1
jmp 0x4c8b73
xor al, al
inc edi
lea ecx, [ebp + 1]
cmp edi, ecx
jle 0x4c8b30
test al, al
je 0x4c8deb
mov eax, ebp
sub eax, ebx
cmp eax, 2
je 0x4c8bbb
jle 0x4c8deb
add ebp, ebx
mov dword [esp + 0x1c], ebp
fild dword [esp + 0x1c]
fmul dword [0x6532dc]
fild dword [esi + 0x1b00]
fmul dword [0x6532dc]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x4c8deb
mov eax, dword [esi + 0xf4]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
add eax, 0xffffffd6
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x1c], eax
mov eax, dword [esi]
fild dword [esp + 0x1c]
lea ecx, [esp + 0x158]
fild dword [esp + 0x30]
push ecx
mov ecx, esi
fmul st(2)
fadd st(1)
fstp dword [esp + 0x34]
fild dword [esp + 0x24]
fmul st(2)
fadd st(1)
fstp dword [esp + 0x24]
fstp st(0)
fstp st(0)
call dword [eax + 0x14]
fld dword [esp + 0x20]
fadd dword [esp + 0x30]
fmul dword [0x6532dc]
fiadd dword [eax]
call fcn.00611c14
mov edx, dword [esi + 0x1b04]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x68], eax
mov eax, dword [esi + 0xf4]
sub edx, ebp
mov dword [esp + 0x1c], eax
dec edx
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
add eax, 0xffffffd6
cdq
fimul dword [esp + 0x1c]
sub eax, edx
sar eax, 1
mov dword [esp + 0x20], eax
mov eax, dword [esi]
lea ecx, [esp + 0x150]
push ecx
mov ecx, esi
fiadd dword [esp + 0x24]
fstp dword [esp + 0x24]
call dword [eax + 0x14]
fild dword [eax + 4]
fiadd dword [esi + 0xf4]
fadd dword [esp + 0x20]
fadd dword [0x65dd1c]
call fcn.00611c14
mov dword [esp + 0x6c], eax
call fcn.006122e1
and eax, 0x80000001
jns 0x4c8c90
dec eax
or eax, 0xfffffffe
inc eax
dec eax
neg eax
sbb al, al
inc al
mov byte [esp + 0x70], al
call fcn.006122e1
and eax, 0x80000001
jns 0x4c8cac
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
mov ecx, 0x654e58
je 0x4c8cbb
mov ecx, 0x65dd18
lea edx, [esp + 0x50]
lea eax, [esp + 0x60]
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], eax
mov eax, ecx
mov byte [esp + 0x28c], 0x2a
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4c8cd8
sub eax, edi
add eax, ecx
push eax
push ecx
lea ecx, [esp + 0x58]
call fcn.00403b50
sub esp, 0x18
mov ecx, esp
mov dword [esp + 0x2c], esp
lea edx, [esp + 0x68]
push edx
push str.scope_decor5
push ecx
mov byte [esp + 0x2b0], 0x2b
call fcn.00404f30
add esp, 0xc
lea eax, [esp + 0x98]
push eax
mov ecx, 0x6bfa98
call fcn.004a1c40
push eax
lea ecx, [esp + 0x78]
mov byte [esp + 0x290], 0x2c
call fcn.0049ab80
lea ecx, [esp + 0x80]
mov byte [esp + 0x28c], 0x2b
call fcn.0049ac10
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0x60]
cmp eax, ecx
mov byte [esp + 0x28c], 0x29
je 0x4c8d84
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x4c8d84
sub eax, ecx
cmp eax, 0x80
jbe 0x4c8d7a
push ecx
call fcn.00611869
add esp, 4
jmp 0x4c8d84
push eax
push ecx
call fcn.005d6970
add esp, 8
mov eax, dword [esi + 0x10c]
mov ecx, dword [esi + 0x110]
cmp eax, ecx
lea edi, [esi + 0x108]
je 0x4c8dd5
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], eax
test eax, eax
mov byte [esp + 0x28c], 0x2d
je 0x4c8dcf
mov edx, dword [esp + 0x68]
mov dword [eax], edx
mov ecx, dword [esp + 0x6c]
mov dword [eax + 4], ecx
mov dl, byte [esp + 0x70]
lea ecx, [esp + 0x74]
push ecx
lea ecx, [eax + 0xc]
mov byte [eax + 8], dl
call fcn.0049aa50
add dword [edi + 4], 0x18
jmp 0x4c8deb
push 1
push 1
lea edx, [esp + 0x1b]
push edx
lea ecx, [esp + 0x74]
push ecx
push eax
mov ecx, edi
call fcn.004bcfc0
lea ecx, [esp + 0x74]
mov byte [esp + 0x28c], 4
call fcn.0049ac10
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0x1b04]
inc eax
cmp eax, ecx
mov dword [esp + 0x28], eax
jl 0x4c8a80
mov eax, dword [esi + 0x1b00]
xor edi, edi
cmp eax, edi
mov dword [esp + 0x28], edi
jle 0x4ca7e5
jmp 0x4c8e30
mov eax, dword [esi + 0x1b04]
test eax, eax
mov dword [esp + 0x30], 0
jle 0x4ca7cc
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x28]
push ebp
lea edi, [esi + 0x284]
push ebx
mov ecx, edi
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
jne 0x4c926d
lea eax, [ebx - 1]
test eax, eax
jl 0x4c926d
cmp eax, dword [esi + 0x1b00]
jge 0x4c926d
test ebp, ebp
jl 0x4c926d
cmp ebp, dword [esi + 0x1b04]
jge 0x4c926d
push ebp
push eax
mov ecx, edi
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
je 0x4c926d
lea eax, [ebx + 1]
test eax, eax
jl 0x4c926d
cmp eax, dword [esi + 0x1b00]
jge 0x4c926d
cmp ebp, dword [esi + 0x1b04]
jge 0x4c926d
push ebp
push eax
mov ecx, edi
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
je 0x4c926d
test ebx, ebx
lea eax, [ebp - 1]
jl 0x4c926d
cmp ebx, dword [esi + 0x1b00]
jge 0x4c926d
test eax, eax
jl 0x4c926d
cmp eax, dword [esi + 0x1b04]
jge 0x4c926d
push eax
push ebx
mov ecx, edi
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
je 0x4c926d
cmp ebx, dword [esi + 0x1b00]
lea eax, [ebp + 1]
jge 0x4c926d
test eax, eax
jl 0x4c926d
cmp eax, dword [esi + 0x1b04]
jge 0x4c926d
push eax
push ebx
mov ecx, edi
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
je 0x4c926d
call fcn.006122e1
and eax, 0x80000001
jns 0x4c8f83
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
mov ecx, 0x654e58
je 0x4c8f92
mov ecx, 0x65dd18
lea edx, [esp + 0xc8]
lea eax, [esp + 0xd8]
mov dword [esp + 0xd8], edx
mov dword [esp + 0xdc], eax
mov eax, ecx
mov byte [esp + 0x28c], 0x2e
lea edi, [eax + 1]
jmp 0x4c8fc0
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4c8fc0
sub eax, edi
add eax, ecx
push eax
push ecx
lea ecx, [esp + 0xd0]
call fcn.00403b50
sub esp, 0x18
mov ecx, esp
mov dword [esp + 0x2c], esp
lea edx, [esp + 0xe0]
push edx
push str.scope_decor6
push ecx
mov byte [esp + 0x2b0], 0x2f
call fcn.00404f30
add esp, 0xc
lea eax, [esp + 0x190]
push eax
mov ecx, 0x6bfa98
call fcn.004a1c40
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0x290], 0x30
call fcn.0049ab80
lea ecx, [esp + 0x178]
mov byte [esp + 0x28c], 0x2f
call fcn.0049ac10
mov eax, dword [esp + 0xdc]
lea ecx, [esp + 0xd8]
cmp eax, ecx
mov byte [esp + 0x28c], 4
je 0x4c907b
mov ecx, dword [esp + 0xc8]
test ecx, ecx
je 0x4c907b
sub eax, ecx
cmp eax, 0x80
jbe 0x4c9071
push ecx
call fcn.00611869
add esp, 4
jmp 0x4c907b
push eax
push ecx
call fcn.005d6970
add esp, 8
mov eax, dword [esi + 0xf4]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
add eax, 0xffffffd6
cdq
sub eax, edx
fimul dword [esp + 0x28]
mov edx, dword [esi]
sar eax, 1
mov dword [esp + 0x20], eax
lea eax, [esp + 0x150]
push eax
mov ecx, esi
fiadd dword [esp + 0x24]
fstp dword [esp + 0x18]
call dword [edx + 0x14]
mov edi, dword [esi + 0xf4]
mov ecx, eax
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
mov dword [esp + 0x1c], edi
fiadd dword [ecx]
fadd dword [esp + 0x14]
call fcn.00611c14
mov ecx, dword [esi + 0x1b04]
sub ecx, ebp
dec ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
lea eax, [edi - 0x2a]
cdq
fimul dword [esp + 0x1c]
sub eax, edx
mov edx, dword [esi]
sar eax, 1
mov dword [esp + 0x14], eax
lea eax, [esp + 0x158]
push eax
mov ecx, esi
fiadd dword [esp + 0x18]
fstp dword [esp + 0x18]
call dword [edx + 0x14]
fild dword [eax + 4]
fadd dword [esp + 0x14]
call fcn.00611c14
add eax, 8
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x1b00]
cdq
sub eax, edx
sar eax, 1
cmp ebx, eax
setl al
test al, al
mov byte [esp + 0x40], al
je 0x4c9199
lea ecx, [esp + 0x1cc]
push ecx
lea ecx, [esp + 0x48]
call fcn.0049aca0
mov edx, dword [eax]
mov ecx, dword [edx + 4]
add ecx, eax
mov byte [esp + 0x28c], 0x31
call fcn.0044fa50
mov edx, dword [eax]
lea ecx, [esp + 0x270]
push ecx
mov ecx, eax
call dword [edx + 0x10]
mov eax, dword [eax + 8]
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esi + 0xf4]
cdq
sub eax, edx
mov edx, dword [esp + 0x38]
sar ecx, 1
sar eax, 1
sub eax, ecx
lea eax, [edx + eax - 8]
lea ecx, [esp + 0x1cc]
jmp 0x4c91f3
lea ecx, [esp + 0x1e4]
push ecx
lea ecx, [esp + 0x48]
call fcn.0049aca0
mov edx, dword [eax]
mov ecx, dword [edx + 4]
add ecx, eax
mov byte [esp + 0x28c], 0x32
call fcn.0044fa50
mov edx, dword [eax]
lea ecx, [esp + 0x240]
push ecx
mov ecx, eax
call dword [edx + 0x10]
mov eax, dword [eax + 8]
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esi + 0xf4]
cdq
sub eax, edx
mov edx, dword [esp + 0x38]
sar ecx, 1
sar eax, 1
sub ecx, eax
lea eax, [edx + ecx + 8]
lea ecx, [esp + 0x1e4]
mov byte [esp + 0x28c], 4
mov dword [esp + 0x38], eax
call fcn.00450980
mov eax, dword [esi + 0x10c]
mov ecx, dword [esi + 0x110]
cmp eax, ecx
lea edi, [esi + 0x108]
je 0x4ca11a
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], eax
test eax, eax
mov byte [esp + 0x28c], 0x33
je 0x4ca104
mov ecx, dword [esp + 0x38]
mov dword [eax], ecx
mov edx, dword [esp + 0x3c]
mov dword [eax + 4], edx
mov cl, byte [esp + 0x40]
lea edx, [esp + 0x44]
mov byte [eax + 8], cl
push edx
lea ecx, [eax + 0xc]
call fcn.0049aa50
mov eax, dword [edi + 4]
add eax, 0x18
mov byte [esp + 0x28c], 4
mov dword [edi + 4], eax
jmp 0x4ca4d3
push ebp
push ebx
mov ecx, edi
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
jne 0x4c962b
mov ebp, dword [esp + 0x30]
dec ebp
test ebx, ebx
jl 0x4c92c2
cmp ebx, dword [esi + 0x1b00]
jge 0x4c92c2
test ebp, ebp
jl 0x4c92c2
cmp ebp, dword [esi + 0x1b04]
jge 0x4c92c2
push ebp
push ebx
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
jne 0x4c962b
mov eax, dword [esp + 0x30]
inc eax
test ebx, ebx
jl 0x4c962b
cmp ebx, dword [esi + 0x1b00]
jge 0x4c962b
test eax, eax
jl 0x4c962b
cmp eax, dword [esi + 0x1b04]
jge 0x4c962b
push eax
push ebx
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
je 0x4c962b
lea edi, [ebx + 1]
test edi, edi
jl 0x4c962b
cmp edi, dword [esi + 0x1b00]
jge 0x4c962b
test ebp, ebp
jl 0x4c962b
cmp ebp, dword [esi + 0x1b04]
jge 0x4c962b
push ebp
push edi
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
je 0x4c962b
test edi, edi
jl 0x4c962b
cmp edi, dword [esi + 0x1b00]
jge 0x4c962b
mov eax, dword [esp + 0x30]
test eax, eax
jl 0x4c962b
cmp eax, dword [esi + 0x1b04]
jge 0x4c962b
mov ecx, eax
push ecx
push edi
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
je 0x4c962b
mov eax, dword [esi + 0xf4]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
add eax, 0xffffffd6
cdq
sub eax, edx
fimul dword [esp + 0x28]
mov edx, dword [esi]
sar eax, 1
mov dword [esp + 0x14], eax
lea eax, [esp + 0x218]
push eax
mov ecx, esi
fiadd dword [esp + 0x18]
fstp dword [esp + 0x24]
call dword [edx + 0x14]
mov edi, dword [esi + 0xf4]
mov ecx, eax
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
mov dword [esp + 0x1c], edi
fiadd dword [ecx]
fadd dword [esp + 0x20]
call fcn.00611c14
mov ecx, dword [esi + 0x1b04]
sub ecx, dword [esp + 0x30]
dec ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
lea eax, [edi - 0x2a]
cdq
fimul dword [esp + 0x1c]
sub eax, edx
mov edx, dword [esi]
sar eax, 1
mov dword [esp + 0x14], eax
lea eax, [esp + 0x228]
push eax
mov ecx, esi
fiadd dword [esp + 0x18]
fstp dword [esp + 0x18]
call dword [edx + 0x14]
fild dword [eax + 4]
fadd dword [esp + 0x14]
call fcn.00611c14
add eax, 8
mov dword [esp + 0x3c], eax
call fcn.006122e1
and eax, 0x80000001
jns 0x4c945f
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
mov ecx, 0x654e58
je 0x4c946e
mov ecx, 0x65dd18
lea edx, [esp + 0xb0]
lea eax, [esp + 0xc0]
mov dword [esp + 0xc0], edx
mov dword [esp + 0xc4], eax
mov eax, ecx
mov byte [esp + 0x28c], 0x34
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4c9497
sub eax, edi
add eax, ecx
push eax
push ecx
lea ecx, [esp + 0xb8]
call fcn.00403b50
sub esp, 0x18
mov ecx, esp
mov dword [esp + 0x2c], esp
lea edx, [esp + 0xc8]
push edx
push str.scope_decor2
push ecx
mov byte [esp + 0x2b0], 0x35
call fcn.00404f30
add esp, 0xc
lea eax, [esp + 0x178]
push eax
mov ecx, 0x6bfa98
call fcn.004a1c40
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0x290], 0x36
call fcn.0049ab80
lea ecx, [esp + 0x160]
mov byte [esp + 0x28c], 0x35
call fcn.0049ac10
mov eax, dword [esp + 0xc4]
lea ecx, [esp + 0xc0]
cmp eax, ecx
mov byte [esp + 0x28c], 4
je 0x4c9552
mov ecx, dword [esp + 0xb0]
test ecx, ecx
je 0x4c9552
sub eax, ecx
cmp eax, 0x80
jbe 0x4c9548
push ecx
call fcn.00611869
add esp, 4
jmp 0x4c9552
push eax
push ecx
call fcn.005d6970
add esp, 8
lea edx, [esp + 0x1d8]
push edx
lea ecx, [esp + 0x48]
mov byte [esp + 0x44], 0
call fcn.0049aca0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov byte [esp + 0x28c], 0x37
call fcn.0044fa50
mov edx, dword [eax]
lea ecx, [esp + 0x260]
push ecx
mov ecx, eax
call dword [edx + 0x10]
mov eax, dword [eax + 8]
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esi + 0xf4]
cdq
sub eax, edx
mov edx, dword [esp + 0x38]
sar ecx, 1
sar eax, 1
sub eax, ecx
lea eax, [edx + eax - 8]
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x38], eax
mov byte [esp + 0x28c], 4
call fcn.00450980
mov eax, dword [esi + 0x10c]
mov ecx, dword [esi + 0x110]
cmp eax, ecx
lea edi, [esi + 0x108]
je 0x4ca11a
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], eax
test eax, eax
mov byte [esp + 0x28c], 0x38
je 0x4ca104
mov ecx, dword [esp + 0x38]
mov dword [eax], ecx
mov edx, dword [esp + 0x3c]
mov dword [eax + 4], edx
mov cl, byte [esp + 0x40]
lea edx, [esp + 0x44]
mov byte [eax + 8], cl
push edx
lea ecx, [eax + 0xc]
call fcn.0049aa50
mov eax, dword [edi + 4]
add eax, 0x18
mov byte [esp + 0x28c], 4
mov dword [edi + 4], eax
jmp 0x4ca4d3
mov eax, dword [esp + 0x30]
push eax
push ebx
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
jne 0x4c99f4
mov ebp, dword [esp + 0x30]
dec ebp
test ebx, ebx
jl 0x4c9688
cmp ebx, dword [esi + 0x1b00]
jge 0x4c9688
test ebp, ebp
jl 0x4c9688
cmp ebp, dword [esi + 0x1b04]
jge 0x4c9688
push ebp
push ebx
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
jne 0x4c99f4
mov eax, dword [esp + 0x30]
inc eax
test ebx, ebx
jl 0x4c99f4
cmp ebx, dword [esi + 0x1b00]
jge 0x4c99f4
test eax, eax
jl 0x4c99f4
cmp eax, dword [esi + 0x1b04]
jge 0x4c99f4
push eax
push ebx
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
je 0x4c99f4
lea edi, [ebx - 1]
test edi, edi
jl 0x4c99f4
cmp edi, dword [esi + 0x1b00]
jge 0x4c99f4
test ebp, ebp
jl 0x4c99f4
cmp ebp, dword [esi + 0x1b04]
jge 0x4c99f4
push ebp
push edi
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
je 0x4c99f4
test edi, edi
jl 0x4c99f4
cmp edi, dword [esi + 0x1b00]
jge 0x4c99f4
mov eax, dword [esp + 0x30]
test eax, eax
jl 0x4c99f4
mov ecx, eax
cmp ecx, dword [esi + 0x1b04]
jge 0x4c99f4
mov edx, ecx
push edx
push edi
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
je 0x4c99f4
mov eax, dword [esi + 0xf4]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
add eax, 0xffffffd6
cdq
sub eax, edx
fimul dword [esp + 0x28]
sar eax, 1
mov dword [esp + 0x14], eax
mov eax, dword [esi]
lea ecx, [esp + 0x238]
push ecx
mov ecx, esi
fiadd dword [esp + 0x18]
fstp dword [esp + 0x24]
call dword [eax + 0x14]
mov edi, dword [esi + 0xf4]
mov ecx, eax
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
mov dword [esp + 0x1c], edi
fiadd dword [ecx]
fadd dword [esp + 0x20]
call fcn.00611c14
mov edx, dword [esi + 0x1b04]
sub edx, dword [esp + 0x30]
dec edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
lea eax, [edi - 0x2a]
cdq
fimul dword [esp + 0x1c]
sub eax, edx
sar eax, 1
mov dword [esp + 0x14], eax
mov eax, dword [esi]
lea ecx, [esp + 0x1f0]
push ecx
mov ecx, esi
fiadd dword [esp + 0x18]
fstp dword [esp + 0x18]
call dword [eax + 0x14]
fild dword [eax + 4]
fadd dword [esp + 0x14]
call fcn.00611c14
add eax, 8
mov dword [esp + 0x3c], eax
call fcn.006122e1
and eax, 0x80000001
jns 0x4c9827
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
mov ecx, 0x654e58
je 0x4c9836
mov ecx, 0x65dd18
lea edx, [esp + 0xe0]
lea eax, [esp + 0xf0]
mov dword [esp + 0xf0], edx
mov dword [esp + 0xf4], eax
mov eax, ecx
mov byte [esp + 0x28c], 0x39
lea edi, [eax + 1]
nop
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4c9860
sub eax, edi
add eax, ecx
push eax
push ecx
lea ecx, [esp + 0xe8]
call fcn.00403b50
sub esp, 0x18
mov ecx, esp
mov dword [esp + 0x2c], esp
lea edx, [esp + 0xf8]
push edx
push str.scope_decor2
push ecx
mov byte [esp + 0x2b0], 0x3a
call fcn.00404f30
add esp, 0xc
lea eax, [esp + 0x1a8]
push eax
mov ecx, 0x6bfa98
call fcn.004a1c40
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0x290], 0x3b
call fcn.0049ab80
lea ecx, [esp + 0x190]
mov byte [esp + 0x28c], 0x3a
call fcn.0049ac10
mov eax, dword [esp + 0xf4]
lea ecx, [esp + 0xf0]
cmp eax, ecx
mov byte [esp + 0x28c], 4
je 0x4c991b
mov ecx, dword [esp + 0xe0]
test ecx, ecx
je 0x4c991b
sub eax, ecx
cmp eax, 0x80
jbe 0x4c9911
push ecx
call fcn.00611869
add esp, 4
jmp 0x4c991b
push eax
push ecx
call fcn.005d6970
add esp, 8
lea edx, [esp + 0x1c0]
push edx
lea ecx, [esp + 0x48]
mov byte [esp + 0x44], 1
call fcn.0049aca0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov byte [esp + 0x28c], 0x3c
call fcn.0044fa50
mov edx, dword [eax]
lea ecx, [esp + 0x250]
push ecx
mov ecx, eax
call dword [edx + 0x10]
mov eax, dword [eax + 8]
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esi + 0xf4]
cdq
sub eax, edx
mov edx, dword [esp + 0x38]
sar ecx, 1
sar eax, 1
sub ecx, eax
lea eax, [edx + ecx + 8]
lea ecx, [esp + 0x1c0]
mov dword [esp + 0x38], eax
mov byte [esp + 0x28c], 4
call fcn.00450980
mov eax, dword [esi + 0x10c]
mov ecx, dword [esi + 0x110]
cmp eax, ecx
lea edi, [esi + 0x108]
je 0x4ca11a
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], eax
test eax, eax
mov byte [esp + 0x28c], 0x3d
je 0x4ca104
mov ecx, dword [esp + 0x38]
mov dword [eax], ecx
mov edx, dword [esp + 0x3c]
mov dword [eax + 4], edx
mov cl, byte [esp + 0x40]
lea edx, [esp + 0x44]
mov byte [eax + 8], cl
push edx
lea ecx, [eax + 0xc]
call fcn.0049aa50
mov eax, dword [edi + 4]
add eax, 0x18
mov byte [esp + 0x28c], 4
mov dword [edi + 4], eax
jmp 0x4ca4d3
mov ebp, dword [esp + 0x30]
push ebp
lea edi, [esi + 0x284]
push ebx
mov ecx, edi
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
jne 0x4c9d92
test ebx, ebx
lea eax, [ebp + 1]
jl 0x4c9d92
cmp ebx, dword [esi + 0x1b00]
jge 0x4c9d92
test eax, eax
jl 0x4c9d92
cmp eax, dword [esi + 0x1b04]
jge 0x4c9d92
push eax
push ebx
mov ecx, edi
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
je 0x4c9d92
cmp ebx, dword [esi + 0x1b00]
lea eax, [ebp - 1]
jge 0x4c9a8e
test eax, eax
jl 0x4c9a8e
cmp eax, dword [esi + 0x1b04]
jge 0x4c9a8e
push eax
push ebx
mov ecx, edi
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
jne 0x4c9d92
lea eax, [ebx - 1]
test eax, eax
jl 0x4c9ac3
cmp eax, dword [esi + 0x1b00]
jge 0x4c9ac3
test ebp, ebp
jl 0x4c9ac3
cmp ebp, dword [esi + 0x1b04]
jge 0x4c9ac3
push ebp
push eax
mov ecx, edi
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
jne 0x4c9d92
lea eax, [ebx + 1]
test eax, eax
jl 0x4c9d92
cmp eax, dword [esi + 0x1b00]
jge 0x4c9d92
test ebp, ebp
jl 0x4c9d92
cmp ebp, dword [esi + 0x1b04]
jge 0x4c9d92
push ebp
push eax
mov ecx, edi
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
je 0x4c9d92
mov eax, dword [esi + 0xf4]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
add eax, 0xffffffd6
cdq
sub eax, edx
fimul dword [esp + 0x28]
sar eax, 1
mov dword [esp + 0x14], eax
mov eax, dword [esi]
lea ecx, [esp + 0x200]
push ecx
mov ecx, esi
fiadd dword [esp + 0x18]
fstp dword [esp + 0x24]
call dword [eax + 0x14]
mov edi, dword [esi + 0xf4]
mov ecx, eax
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
mov dword [esp + 0x1c], edi
fiadd dword [ecx]
fadd dword [esp + 0x20]
call fcn.00611c14
mov edx, dword [esi + 0x1b04]
sub edx, ebp
dec edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
lea eax, [edi - 0x2a]
cdq
fimul dword [esp + 0x1c]
sub eax, edx
sar eax, 1
mov dword [esp + 0x14], eax
mov eax, dword [esi]
lea ecx, [esp + 0x220]
push ecx
mov ecx, esi
fiadd dword [esp + 0x18]
fstp dword [esp + 0x18]
call dword [eax + 0x14]
fild dword [eax + 4]
fadd dword [esp + 0x14]
call fcn.00611c14
add eax, 8
mov dword [esp + 0x3c], eax
call fcn.006122e1
and eax, 0x80000001
jns 0x4c9bc3
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
mov ecx, 0x654e58
je 0x4c9bd2
mov ecx, 0x65dd18
lea edx, [esp + 0x108]
lea eax, [esp + 0x118]
mov dword [esp + 0x118], edx
mov dword [esp + 0x11c], eax
mov eax, ecx
mov byte [esp + 0x28c], 0x3e
lea edi, [eax + 1]
jmp 0x4c9c00
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4c9c00
sub eax, edi
lea edx, [ecx + eax]
push edx
push ecx
lea ecx, [esp + 0x110]
call fcn.00403b50
sub esp, 0x18
mov eax, esp
mov dword [esp + 0x2c], esp
lea ecx, [esp + 0x120]
push ecx
push str.scope_decor3
push eax
mov byte [esp + 0x2b0], 0x3f
call fcn.00404f30
add esp, 0xc
lea edx, [esp + 0x1c0]
push edx
mov ecx, 0x6bfa98
call fcn.004a1c40
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0x290], 0x40
call fcn.0049ab80
lea ecx, [esp + 0x1a8]
mov byte [esp + 0x28c], 0x3f
call fcn.0049ac10
mov eax, dword [esp + 0x11c]
lea ecx, [esp + 0x118]
cmp eax, ecx
mov byte [esp + 0x28c], 4
je 0x4c9cbc
mov ecx, dword [esp + 0x108]
test ecx, ecx
je 0x4c9cbc
sub eax, ecx
cmp eax, 0x80
jbe 0x4c9cb2
push ecx
call fcn.00611869
add esp, 4
jmp 0x4c9cbc
push eax
push ecx
call fcn.005d6970
add esp, 8
lea edx, [esp + 0x16c]
push edx
lea ecx, [esp + 0x48]
mov byte [esp + 0x44], 0
call fcn.0049aca0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov byte [esp + 0x28c], 0x41
call fcn.0044fa50
mov edx, dword [eax]
lea ecx, [esp + 0x50]
push ecx
mov ecx, eax
call dword [edx + 0x10]
mov eax, dword [eax + 8]
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esi + 0xf4]
cdq
sub eax, edx
mov edx, dword [esp + 0x38]
sar ecx, 1
sar eax, 1
sub eax, ecx
lea eax, [edx + eax - 8]
lea ecx, [esp + 0x16c]
mov dword [esp + 0x38], eax
mov byte [esp + 0x28c], 4
call fcn.00450980
mov eax, dword [esi + 0x10c]
mov ecx, dword [esi + 0x110]
cmp eax, ecx
lea edi, [esi + 0x108]
je 0x4ca11a
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], eax
test eax, eax
mov byte [esp + 0x28c], 0x42
je 0x4ca104
mov ecx, dword [esp + 0x38]
mov dword [eax], ecx
mov edx, dword [esp + 0x3c]
mov dword [eax + 4], edx
mov cl, byte [esp + 0x40]
lea edx, [esp + 0x44]
mov byte [eax + 8], cl
push edx
lea ecx, [eax + 0xc]
call fcn.0049aa50
mov eax, dword [edi + 4]
add eax, 0x18
mov byte [esp + 0x28c], 4
mov dword [edi + 4], eax
jmp 0x4ca4d3
push ebp
push ebx
mov ecx, edi
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
jne 0x4ca12d
test ebx, ebx
lea eax, [ebp + 1]
jl 0x4ca12d
cmp ebx, dword [esi + 0x1b00]
jge 0x4ca12d
test eax, eax
jl 0x4ca12d
cmp eax, dword [esi + 0x1b04]
jge 0x4ca12d
push eax
push ebx
mov ecx, edi
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
je 0x4ca12d
cmp ebx, dword [esi + 0x1b00]
lea eax, [ebp - 1]
jge 0x4c9e22
test eax, eax
jl 0x4c9e22
cmp eax, dword [esi + 0x1b04]
jge 0x4c9e22
push eax
push ebx
mov ecx, edi
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
jne 0x4ca12d
lea eax, [ebx + 1]
test eax, eax
jl 0x4c9e57
cmp eax, dword [esi + 0x1b00]
jge 0x4c9e57
test ebp, ebp
jl 0x4c9e57
cmp ebp, dword [esi + 0x1b04]
jge 0x4c9e57
push ebp
push eax
mov ecx, edi
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
jne 0x4ca12d
lea eax, [ebx - 1]
test eax, eax
jl 0x4ca12d
cmp eax, dword [esi + 0x1b00]
jge 0x4ca12d
test ebp, ebp
jl 0x4ca12d
cmp ebp, dword [esi + 0x1b04]
jge 0x4ca12d
push ebp
push eax
mov ecx, edi
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
je 0x4ca12d
mov eax, dword [esi + 0xf4]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
add eax, 0xffffffd6
cdq
sub eax, edx
fimul dword [esp + 0x28]
sar eax, 1
mov dword [esp + 0x14], eax
mov eax, dword [esi]
lea ecx, [esp + 0x210]
push ecx
mov ecx, esi
fiadd dword [esp + 0x18]
fstp dword [esp + 0x24]
call dword [eax + 0x14]
mov edi, dword [esi + 0xf4]
mov ecx, eax
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
mov dword [esp + 0x1c], edi
fiadd dword [ecx]
fadd dword [esp + 0x20]
call fcn.00611c14
mov edx, dword [esi + 0x1b04]
sub edx, ebp
dec edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
lea eax, [edi - 0x2a]
cdq
fimul dword [esp + 0x1c]
sub eax, edx
sar eax, 1
mov dword [esp + 0x14], eax
mov eax, dword [esi]
lea ecx, [esp + 0x230]
push ecx
mov ecx, esi
fiadd dword [esp + 0x18]
fstp dword [esp + 0x18]
call dword [eax + 0x14]
fild dword [eax + 4]
fadd dword [esp + 0x14]
call fcn.00611c14
add eax, 8
mov dword [esp + 0x3c], eax
call fcn.006122e1
and eax, 0x80000001
jns 0x4c9f57
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
mov ecx, 0x654e58
je 0x4c9f66
mov ecx, 0x65dd18
lea edx, [esp + 0x138]
lea eax, [esp + 0x148]
mov dword [esp + 0x148], edx
mov dword [esp + 0x14c], eax
mov eax, ecx
mov byte [esp + 0x28c], 0x43
lea edi, [eax + 1]
nop
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4c9f90
sub eax, edi
lea edx, [ecx + eax]
push edx
push ecx
lea ecx, [esp + 0x140]
call fcn.00403b50
sub esp, 0x18
mov eax, esp
mov dword [esp + 0x2c], esp
lea ecx, [esp + 0x150]
push ecx
push str.scope_decor3
push eax
mov byte [esp + 0x2b0], 0x44
call fcn.00404f30
add esp, 0xc
lea edx, [esp + 0x19c]
push edx
mov ecx, 0x6bfa98
call fcn.004a1c40
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0x290], 0x45
call fcn.0049ab80
lea ecx, [esp + 0x184]
mov byte [esp + 0x28c], 0x44
call fcn.0049ac10
mov eax, dword [esp + 0x14c]
lea ecx, [esp + 0x148]
cmp eax, ecx
mov byte [esp + 0x28c], 4
je 0x4ca04c
mov ecx, dword [esp + 0x138]
test ecx, ecx
je 0x4ca04c
sub eax, ecx
cmp eax, 0x80
jbe 0x4ca042
push ecx
call fcn.00611869
add esp, 4
jmp 0x4ca04c
push eax
push ecx
call fcn.005d6970
add esp, 8
lea edx, [esp + 0x19c]
push edx
lea ecx, [esp + 0x48]
mov byte [esp + 0x44], 1
call fcn.0049aca0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov byte [esp + 0x28c], 0x46
call fcn.0044fa50
mov edx, dword [eax]
lea ecx, [esp + 0x68]
push ecx
mov ecx, eax
call dword [edx + 0x10]
mov eax, dword [eax + 8]
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esi + 0xf4]
cdq
sub eax, edx
mov edx, dword [esp + 0x38]
sar ecx, 1
sar eax, 1
sub ecx, eax
lea eax, [edx + ecx + 8]
lea ecx, [esp + 0x19c]
mov dword [esp + 0x38], eax
mov byte [esp + 0x28c], 4
call fcn.00450980
mov eax, dword [esi + 0x10c]
mov ecx, dword [esi + 0x110]
cmp eax, ecx
lea edi, [esi + 0x108]
je 0x4ca11a
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], eax
test eax, eax
mov byte [esp + 0x28c], 0x47
je 0x4ca104
mov ecx, dword [esp + 0x38]
mov dword [eax], ecx
mov edx, dword [esp + 0x3c]
mov dword [eax + 4], edx
mov cl, byte [esp + 0x40]
lea edx, [esp + 0x44]
mov byte [eax + 8], cl
push edx
lea ecx, [eax + 0xc]
call fcn.0049aa50
mov eax, dword [edi + 4]
add eax, 0x18
mov byte [esp + 0x28c], 4
mov dword [edi + 4], eax
jmp 0x4ca4d3
push 1
push 1
lea ecx, [esp + 0x1b]
push ecx
lea edx, [esp + 0x44]
push edx
jmp 0x4ca4cb
push ebp
push ebx
mov ecx, edi
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
jne 0x4ca4d3
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
inc ebx
test eax, eax
jl 0x4ca4d3
cmp eax, dword [esi + 0x1b00]
jge 0x4ca4d3
test ebx, ebx
jl 0x4ca4d3
cmp ebx, dword [esi + 0x1b04]
jge 0x4ca4d3
mov ecx, dword [esp + 0x28]
push ebx
push ecx
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
je 0x4ca4d3
mov ebp, dword [esp + 0x28]
cmp ebp, dword [esi + 0x1b00]
mov ecx, dword [esp + 0x30]
lea eax, [ecx - 1]
jge 0x4ca1db
test eax, eax
jl 0x4ca1db
cmp eax, dword [esi + 0x1b04]
jge 0x4ca1db
push eax
push ebp
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
jne 0x4ca4d3
mov ecx, dword [esp + 0x30]
dec ebp
js 0x4ca210
cmp ebp, dword [esi + 0x1b00]
jge 0x4ca210
test ecx, ecx
jl 0x4ca210
cmp ecx, dword [esi + 0x1b04]
jge 0x4ca210
push ecx
push ebp
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
jne 0x4ca4d3
mov edi, dword [esp + 0x28]
inc edi
js 0x4ca24f
cmp edi, dword [esi + 0x1b00]
jge 0x4ca24f
mov eax, dword [esp + 0x30]
test eax, eax
jl 0x4ca24f
cmp eax, dword [esi + 0x1b04]
jge 0x4ca24f
mov edx, eax
push edx
push edi
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
jne 0x4ca4d3
test ebp, ebp
jl 0x4ca285
cmp ebp, dword [esi + 0x1b00]
jge 0x4ca285
test ebx, ebx
jl 0x4ca285
cmp ebx, dword [esi + 0x1b04]
jge 0x4ca285
push ebx
push ebp
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
jne 0x4ca4d3
test edi, edi
jl 0x4ca2bb
cmp edi, dword [esi + 0x1b00]
jge 0x4ca2bb
test ebx, ebx
jl 0x4ca2bb
cmp ebx, dword [esi + 0x1b04]
jge 0x4ca2bb
push ebx
push edi
lea ecx, [esi + 0x284]
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], 0xfffffffe
jne 0x4ca4d3
mov eax, dword [esi + 0xf4]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
add eax, 0xffffffd6
cdq
sub eax, edx
fimul dword [esp + 0x28]
sar eax, 1
mov dword [esp + 0x14], eax
mov eax, dword [esi]
lea ecx, [esp + 0x1f8]
push ecx
mov ecx, esi
fiadd dword [esp + 0x18]
fstp dword [esp + 0x24]
call dword [eax + 0x14]
mov edi, dword [esi + 0xf4]
mov ecx, eax
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
mov dword [esp + 0x1c], edi
fiadd dword [ecx]
fadd dword [esp + 0x20]
call fcn.00611c14
mov edx, dword [esi + 0x1b04]
sub edx, dword [esp + 0x30]
dec edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
lea eax, [edi - 0x2a]
cdq
fimul dword [esp + 0x1c]
sub eax, edx
sar eax, 1
mov dword [esp + 0x14], eax
mov eax, dword [esi]
lea ecx, [esp + 0x208]
push ecx
mov ecx, esi
fiadd dword [esp + 0x18]
fstp dword [esp + 0x18]
call dword [eax + 0x14]
fild dword [eax + 4]
fadd dword [esp + 0x14]
call fcn.00611c14
add eax, 8
mov dword [esp + 0x3c], eax
call fcn.006122e1
and eax, 0x80000001
jns 0x4ca378
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
mov ecx, 0x654e58
je 0x4ca387
mov ecx, 0x65dd18
lea edx, [esp + 0x120]
lea eax, [esp + 0x130]
mov dword [esp + 0x130], edx
mov dword [esp + 0x134], eax
mov eax, ecx
mov byte [esp + 0x28c], 0x48
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4ca3b0
sub eax, edi
lea edx, [ecx + eax]
push edx
push ecx
lea ecx, [esp + 0x128]
call fcn.00403b50
sub esp, 0x18
mov eax, esp
mov dword [esp + 0x2c], esp
lea ecx, [esp + 0x138]
push ecx
push str.scope_decor4
push eax
mov byte [esp + 0x2b0], 0x49
call fcn.00404f30
add esp, 0xc
lea edx, [esp + 0x1cc]
push edx
mov ecx, 0x6bfa98
call fcn.004a1c40
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0x290], 0x4a
call fcn.0049ab80
lea ecx, [esp + 0x1b4]
mov byte [esp + 0x28c], 0x49
call fcn.0049ac10
mov eax, dword [esp + 0x134]
lea ecx, [esp + 0x130]
cmp eax, ecx
mov byte [esp + 0x28c], 4
je 0x4ca46c
mov ecx, dword [esp + 0x120]
test ecx, ecx
je 0x4ca46c
sub eax, ecx
cmp eax, 0x80
jbe 0x4ca462
push ecx
call fcn.00611869
add esp, 4
jmp 0x4ca46c
push eax
push ecx
call fcn.005d6970
add esp, 8
mov eax, dword [esi + 0x10c]
mov ecx, dword [esi + 0x110]
cmp eax, ecx
lea edi, [esi + 0x108]
mov byte [esp + 0x40], 0
je 0x4ca4bd
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], eax
test eax, eax
mov byte [esp + 0x28c], 0x4b
je 0x4ca104
mov edx, dword [esp + 0x38]
mov dword [eax], edx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 4], ecx
mov dl, byte [esp + 0x40]
lea ecx, [esp + 0x44]
mov byte [eax + 8], dl
push ecx
jmp 0x4ca0fc
push 1
push 1
lea edx, [esp + 0x1b]
push edx
lea ecx, [esp + 0x44]
push ecx
mov ecx, edi
push eax
call fcn.004bcfc0
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x4ca7b5
mov ebx, dword [esp + 0x28]
test ebx, ebx
jl 0x4ca7b5
cmp ebx, dword [esi + 0x1b00]
jge 0x4ca7b5
mov eax, dword [esi + 0x1b04]
test eax, eax
jle 0x4ca7b5
push 0
lea edi, [esi + 0x284]
push ebx
mov ecx, edi
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
mov ecx, dword [eax + 4]
mov ebp, 0xfffffffe
cmp ecx, ebp
je 0x4ca7b5
lea eax, [ebx - 1]
test eax, eax
jl 0x4ca55f
cmp eax, dword [esi + 0x1b00]
jge 0x4ca55f
mov ecx, dword [esi + 0x1b04]
test ecx, ecx
jle 0x4ca55f
push 0
push eax
mov ecx, edi
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], ebp
jne 0x4ca7b5
lea eax, [ebx + 1]
test eax, eax
jl 0x4ca592
cmp eax, dword [esi + 0x1b00]
jge 0x4ca592
mov ecx, dword [esi + 0x1b04]
test ecx, ecx
jle 0x4ca592
push 0
push eax
mov ecx, edi
call fcn.0048f220
mov ecx, eax
call fcn.0048f2c0
cmp dword [eax + 4], ebp
jne 0x4ca7b5
mov eax, dword [esi + 0xf4]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
add eax, 0xffffffd6
cdq
sub eax, edx
fimul dword [esp + 0x28]
mov edx, dword [esi]
sar eax, 1
mov dword [esp + 0x14], eax
lea eax, [esp + 0x8c]
push eax
mov ecx, esi
fiadd dword [esp + 0x18]
fstp dword [esp + 0x24]
call dword [edx + 0x14]
mov edi, dword [esi + 0xf4]
mov ecx, eax
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
mov dword [esp + 0x1c], edi
fiadd dword [ecx]
fadd dword [esp + 0x20]
call fcn.00611c14
fild dword [esi + 0x1b04]
mov dword [esp + 0x38], eax
lea eax, [edi - 0x2a]
fimul dword [esp + 0x1c]
cdq
sub eax, edx
mov edx, dword [esi]
sar eax, 1
mov dword [esp + 0x14], eax
lea eax, [esp + 0x80]
push eax
fiadd dword [esp + 0x18]
mov ecx, esi
fstp dword [esp + 0x18]
call dword [edx + 0x14]
fild dword [eax + 4]
fadd dword [esp + 0x14]
call fcn.00611c14
add eax, 8
mov dword [esp + 0x3c], eax
call fcn.006122e1
and eax, 0x80000001
jns 0x4ca642
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
mov ecx, 0x654e58
je 0x4ca651
mov ecx, 0x65dd18
lea edx, [esp + 0x98]
lea eax, [esp + 0xa8]
mov dword [esp + 0xa8], edx
mov dword [esp + 0xac], eax
mov eax, ecx
mov byte [esp + 0x28c], 0x4c
lea edi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4ca680
sub eax, edi
lea edx, [ecx + eax]
push edx
push ecx
lea ecx, [esp + 0xa0]
call fcn.00403b50
sub esp, 0x18
mov eax, esp
mov dword [esp + 0x2c], esp
lea ecx, [esp + 0xb0]
push ecx
push str.scope_decor4
push eax
mov byte [esp + 0x2b0], 0x4d
call fcn.00404f30
add esp, 0xc
lea edx, [esp + 0x110]
push edx
mov ecx, 0x6bfa98
call fcn.004a1c40
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0x290], 0x4e
call fcn.0049ab80
lea ecx, [esp + 0xf8]
mov byte [esp + 0x28c], 0x4d
call fcn.0049ac10
mov eax, dword [esp + 0xac]
lea ecx, [esp + 0xa8]
cmp eax, ecx
mov byte [esp + 0x28c], 4
je 0x4ca73c
mov ecx, dword [esp + 0x98]
test ecx, ecx
je 0x4ca73c
sub eax, ecx
cmp eax, 0x80
jbe 0x4ca732
push ecx
call fcn.00611869
add esp, 4
jmp 0x4ca73c
push eax
push ecx
call fcn.005d6970
add esp, 8
mov eax, dword [esi + 0x10c]
mov ecx, dword [esi + 0x110]
cmp eax, ecx
lea edi, [esi + 0x108]
mov byte [esp + 0x40], 0
je 0x4ca79f
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], eax
test eax, eax
mov byte [esp + 0x28c], 0x4f
je 0x4ca78c
mov edx, dword [esp + 0x38]
mov dword [eax], edx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 4], ecx
mov dl, byte [esp + 0x40]
lea ecx, [esp + 0x44]
push ecx
lea ecx, [eax + 0xc]
mov byte [eax + 8], dl
call fcn.0049aa50
mov eax, dword [edi + 4]
add eax, 0x18
mov byte [esp + 0x28c], 4
mov dword [edi + 4], eax
jmp 0x4ca7b5
push 1
push 1
lea edx, [esp + 0x1b]
push edx
lea ecx, [esp + 0x44]
push ecx
push eax
mov ecx, edi
call fcn.004bcfc0
mov eax, dword [esp + 0x30]
mov ecx, dword [esi + 0x1b04]
inc eax
cmp eax, ecx
mov dword [esp + 0x30], eax
jl 0x4c8e46
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0x1b00]
inc eax
cmp eax, ecx
mov dword [esp + 0x28], eax
jl 0x4c8e30
xor edi, edi
mov ecx, dword [esi + 0x10c]
sub ecx, dword [esi + 0x108]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
push eax
lea ecx, [esp + 0x54]
mov byte [esp + 0x290], 0x50
call fcn.0048bee0
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x60]
cmp eax, ecx
je 0x4ca83d
mov dword [eax], edi
add eax, 4
cmp eax, ecx
jne 0x4ca834
mov eax, dword [esi + 0x108]
mov ecx, dword [esi + 0x10c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
xor ebx, ebx
add eax, edx
mov byte [esp + 0x28c], 0x51
je 0x4ca9d3
xor edi, edi
mov edi, edi
mov eax, dword [esi + 0x108]
lea ecx, [esp + 0xf8]
push ecx
lea ecx, [edi + eax + 0xc]
call fcn.0049aca0
mov edx, dword [eax]
mov ecx, dword [edx + 4]
add ecx, eax
mov byte [esp + 0x28c], 0x52
call fcn.0044fa50
mov edx, dword [eax]
lea ecx, [esp + 0x68]
push ecx
mov ecx, eax
call dword [edx + 0x10]
mov ecx, dword [esi + 0x108]
mov ebp, dword [edi + ecx]
mov ecx, dword [edi + ecx + 4]
mov eax, dword [eax + 0xc]
add eax, ecx
xor edx, edx
mov edx, ebp
push eax
push edx
lea ecx, [esp + 0x38]
call fcn.0041f190
push 0x44374000
push 0x43c80000
lea ecx, [esp + 0x88]
call fcn.00406d90
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x24], eax
fld dword [esp + 0x24]
mov dword [esp + 0x2c], edx
fsub dword [esp + 0x2c]
sub esp, 8
mov dword [esp + 0x30], ecx
fstp dword [esp + 4]
lea ecx, [esp + 0x1c]
fld dword [esp + 0x28]
fsub dword [esp + 0x30]
fstp dword [esp]
call fcn.00406d90
fld dword [esp + 0x18]
mov byte [esp + 0x13], 1
fmul dword [esp + 0x18]
fld dword [esp + 0x14]
fmul dword [esp + 0x14]
faddp st(1)
fsqrt
fcomp dword [0x65aa30]
fnstsw ax
test ah, 0x41
jnp 0x4ca949
mov byte [esp + 0x13], 0
mov ecx, dword [esp + 0x54]
mov ebp, dword [esp + 0x50]
add ecx, ebx
mov eax, ecx
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
and ecx, 0x8000001f
lea eax, [ebp + eax*4]
jns 0x4ca977
dec ecx
or ecx, 0xffffffe0
inc ecx
jns 0x4ca977
add ecx, 0x20
sub eax, 4
mov edx, eax
mov eax, 1
shl eax, cl
mov cl, byte [esp + 0x13]
test cl, cl
mov ecx, dword [edx]
je 0x4ca98e
or ecx, eax
jmp 0x4ca992
not eax
and ecx, eax
mov dword [edx], ecx
lea ecx, [esp + 0xf8]
mov byte [esp + 0x28c], 0x51
call fcn.00450980
mov eax, dword [esi + 0x108]
mov ecx, dword [esi + 0x10c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
inc ebx
add eax, edx
add edi, 0x18
cmp ebx, eax
jb 0x4ca870
mov eax, dword [esi + 0x108]
mov edx, dword [esi + 0x10c]
sub edx, eax
mov eax, 0x2aaaaaab
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
xor ecx, ecx
add eax, edx
je 0x4cabaf
xor ebx, ebx
lea esp, [esp]
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x50]
lea ebp, [ecx + 1]
add ecx, eax
mov eax, ecx
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
and ecx, 0x8000001f
mov dword [esp + 0x28], ebp
lea eax, [edi + eax*4]
jns 0x4caa34
dec ecx
or ecx, 0xffffffe0
inc ecx
jns 0x4caa34
add ecx, 0x20
sub eax, 4
mov edx, eax
mov eax, 1
shl eax, cl
test dword [edx], eax
jne 0x4cab81
mov edx, dword [esi + 0x108]
mov ecx, dword [esi + 0x10c]
sub ecx, edx
mov eax, 0x2aaaaaab
imul ecx
mov eax, dword [esp + 0x28]
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp eax, ecx
jae 0x4cab81
lea edx, [ebx + 0x18]
mov dword [esp + 0x20], edx
jmp 0x4caa80
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x50]
lea ecx, [eax + ebp]
mov eax, ecx
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
and ecx, 0x8000001f
lea eax, [edi + eax*4]
jns 0x4caaae
dec ecx
or ecx, 0xffffffe0
inc ecx
jns 0x4caaae
add ecx, 0x20
sub eax, 4
mov edx, eax
mov eax, 1
shl eax, cl
test dword [edx], eax
jne 0x4cab4e
mov eax, dword [esi + 0x108]
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + eax]
mov edi, dword [ecx + eax + 4]
mov ecx, dword [ebx + eax]
mov eax, dword [ebx + eax + 4]
sub eax, edi
sub ecx, edx
push eax
push ecx
lea ecx, [esp + 0x88]
call fcn.0041f190
fld dword [eax + 4]
fld dword [eax]
mov eax, dword [esi + 0xf4]
fld st(0)
shl eax, 1
fmul st(1)
mov dword [esp + 0x14], eax
fld st(2)
fmul st(3)
faddp st(1)
fstp st(2)
fstp st(0)
fsqrt
fild dword [esp + 0x14]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4cab4e
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x50]
lea ecx, [eax + ebp]
mov eax, ecx
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
and ecx, 0x8000001f
lea edx, [edi + eax*4]
jns 0x4cab45
dec ecx
or ecx, 0xffffffe0
inc ecx
jns 0x4cab45
add ecx, 0x20
sub edx, 4
mov eax, 1
shl eax, cl
or dword [edx], eax
mov edx, dword [esi + 0x108]
mov ecx, dword [esi + 0x10c]
mov edi, dword [esp + 0x20]
sub ecx, edx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
inc ebp
add edi, 0x18
add ecx, edx
cmp ebp, ecx
mov dword [esp + 0x20], edi
jb 0x4caa80
mov edx, dword [esi + 0x10c]
mov edi, dword [esi + 0x108]
mov ecx, dword [esp + 0x28]
sub edx, edi
mov eax, 0x2aaaaaab
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
add ebx, 0x18
cmp ecx, eax
jb 0x4caa00
mov ebp, dword [esi + 0x108]
mov ecx, dword [esi + 0x10c]
sub ecx, ebp
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
lea ebp, [edx + ecx - 1]
test ebp, ebp
jl 0x4cac65
lea ebx, [ebp + ebp*2]
shl ebx, 3
nop
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x50]
lea ecx, [eax + ebp]
mov eax, ecx
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
and ecx, 0x8000001f
lea eax, [edi + eax*4]
jns 0x4cac0e
dec ecx
or ecx, 0xffffffe0
inc ecx
jns 0x4cac0e
add ecx, 0x20
sub eax, 4
mov edx, eax
mov eax, 1
shl eax, cl
test dword [edx], eax
je 0x4cac59
mov eax, dword [esi + 0x108]
mov ecx, dword [esi + 0x10c]
add eax, ebx
lea edx, [eax + 0x18]
cmp edx, ecx
je 0x4cac42
push 0
lea edi, [esp + 0x17]
push edi
push eax
push ecx
push edx
call fcn.004a17f0
add esp, 0x14
mov eax, dword [esi + 0x10c]
add eax, 0xffffffe8
lea ecx, [eax + 0xc]
mov dword [esi + 0x10c], eax
call fcn.0049ac10
dec ebp
sub ebx, 0x18
test ebp, ebp
jge 0x4cabe0
mov edx, dword [esi]
mov eax, 1
mov ecx, eax
mov edi, eax
lea eax, [esp + 0x80]
mov ebp, ecx
push eax
mov ecx, esi
call dword [edx + 0x14]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov edx, dword [esi + 0x14]
add ecx, edi
mov edi, dword [esi + 0x18]
add eax, ebp
add edi, eax
lea ebp, [ecx + edx]
mov edx, dword [esi]
lea eax, [esp + 0x8c]
push eax
mov ecx, esi
call dword [edx + 0x14]
mov ebx, dword [eax + 4]
mov edx, dword [eax]
mov eax, ebp
sub eax, edx
mov ecx, edi
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x50]
sub ecx, ebx
test eax, eax
mov dword [esi + 0x18], ecx
mov byte [esp + 0x28c], 4
je 0x4cacf1
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x50]
sub eax, ecx
sar eax, 2
shl eax, 2
cmp eax, 0x80
jbe 0x4cace7
push ecx
call fcn.00611869
add esp, 4
jmp 0x4cacf1
push eax
push ecx
call fcn.005d6970
add esp, 8
lea ecx, [esp + 0x44]
mov dword [esp + 0x28c], 0xffffffff
call fcn.0049ac10
mov ecx, dword [esp + 0x284]
pop edi
mov dword fs:[0], ecx
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret