Function at 0x46f210
Capabilities:
Contain obfuscated stackstrings

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x7c]
cmp eax, dword [ecx + 8]
jbe 0x46fd43
sub esp, 0xfc
mov dword [esp + 0x66], 0x656d6974
mov dword [esp + 0x68], 0x442e656d
mov dword [esp + 0x6c], 0x28657461
lea edi, [esp]
lea esi, [esp + 0x100]
call fcn.0045ae3e
mov byte [esp + 0x14], 0
call fcn.00472520
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x66]
mov dword [esp], ecx
mov dword [esp + 4], 0xa
mov dword [esp + 8], 0xa
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
call fcn.0046eae0
nop
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xcc], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x38], edx
lea edi, [esp]
lea esi, [esp + 0x100]
call fcn.0045ae3e
mov byte [esp + 0x14], 1
call fcn.00472520
mov eax, dword [esp + 0x1c]
lea ecx, [eax - 1]
cmp ecx, 0xb
ja 0x46f3ce
mov eax, dword [esp + 0x38]
lea ecx, [eax + 7]
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0x3c]
cmp edx, ecx
jb 0x46f2ee
mov ebx, dword [esp + 0xcc]
jmp 0x46f323
lea ebx, [0x4ad0a0]
mov dword [esp], ebx
mov ebp, dword [esp + 0xcc]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
call fcn.00444ff0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebx, ecx
mov edx, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x3c], edx
mov dword [esp + 0xcc], ebx
mov dword [ebx + eax], 0x6974202c
mov dword [ebx + eax + 3], 0x2e656d69
lea edi, [esp]
lea esi, [esp + 0x100]
call fcn.0045ae3e
mov byte [esp + 0x14], 1
call fcn.00472520
mov eax, dword [esp + 0x1c]
lea ecx, [eax - 1]
cmp ecx, 0xb
jbe 0x46f3ac
mov dword [esp + 0x34], eax
lea edi, [esp + 0x70]
xor eax, eax
call fcn.0045a95b
mov ecx, dword [esp + 0x34]
test ecx, ecx
sete dl
mov ebx, ecx
sar ecx, 0x1f
test ecx, ecx
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, edx
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x46f39a
mov eax, 0x14
jmp 0x46fc77
mov byte [esp + 0x83], 0x30
mov eax, 0x13
jmp 0x46fbfd
mov edx, dword [0x5555dc]
mov ebx, dword [0x5555d8]
cmp edx, ecx
jbe 0x46fbf4
lea eax, [ebx + eax*8 - 8]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
jmp 0x46fb55
mov ecx, dword [esp + 0xcc]
mov dword [esp], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
call fcn.0046eae0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea ebx, [ecx + 2]
mov dword [esp + 0x38], ebx
cmp edx, ebx
jae 0x46f43e
mov dword [esp + 0x60], ecx
lea ebp, [0x4ad0a0]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebx
call fcn.00444ff0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x3c], edx
mov dword [esp + 0xcc], eax
mov word [eax + ecx], 0x202c
lea edi, [esp]
lea esi, [esp + 0x100]
call fcn.0045ae3e
mov byte [esp + 0x14], 1
call fcn.00472520
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xcc]
mov dword [esp], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
call fcn.0046eae0
mov eax, dword [esp + 0x18]
lea ecx, [eax + 2]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
cmp edx, ecx
jae 0x46f4dc
mov dword [esp + 0x60], eax
lea ebp, [0x4ad0a0]
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
call fcn.00444ff0
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x3c], edx
mov dword [esp + 0xcc], ebx
mov word [ebx + eax], 0x202c
lea edi, [esp]
lea esi, [esp + 0x100]
call fcn.0045ae3e
call fcn.00472100
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x15180
call fcn.00455910
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xcc]
mov dword [esp], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 8], ecx
mov ecx, eax
mov eax, 0x91a2b3c5
imul ecx
lea eax, [edx + ecx]
sar eax, 0xb
sar ecx, 0x1f
sub eax, ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
call fcn.0046eae0
mov eax, dword [esp + 0x18]
lea ecx, [eax + 2]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
cmp edx, ecx
jae 0x46f5ad
mov dword [esp + 0x60], eax
lea ebp, [0x4ad0a0]
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
call fcn.00444ff0
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x60]
mov dword [esp + 0xcc], ebx
mov dword [esp + 0x3c], edx
mov word [ebx + eax], 0x202c
lea edi, [esp]
lea esi, [esp + 0x100]
call fcn.0045ae3e
call fcn.00472100
mov eax, dword [esp + 0x18]
mov dword [esp + 0x5c], eax
mov ecx, 0x91a2b3c5
mul ecx
shr edx, 0xb
imul eax, edx, 0xe10
mov edx, dword [esp + 0x5c]
sub edx, eax
mov eax, 0x123456
mov ebx, edx
mul edx
mov edx, dword [esp + 0x14]
mov ebp, eax
mov eax, edx
mov esi, edx
mul ecx
shr edx, 0xb
mov eax, edx
add edx, 0
add edx, ebp
imul eax, eax, 0xe10
mov ebp, esi
sub esi, eax
imul eax, ebx, 0x6a0
add eax, esi
mov ebx, eax
mov eax, ecx
mov ecx, edx
mul ebx
shr edx, 0xb
add edx, ecx
mov eax, 0xe10
mul edx
sub ebp, eax
mov eax, dword [esp + 0xcc]
mov dword [esp], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov eax, 0x88888889
imul ebp
lea eax, [edx + ebp]
sar eax, 5
sar ebp, 0x1f
sub eax, ebp
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
call fcn.0046eae0
mov eax, dword [esp + 0x18]
lea ecx, [eax + 2]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
cmp edx, ecx
jae 0x46f6b9
mov dword [esp + 0x60], eax
lea ebp, [0x4ad0a0]
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
call fcn.00444ff0
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x3c], edx
mov dword [esp + 0xcc], ebx
mov word [ebx + eax], 0x202c
lea edi, [esp]
lea esi, [esp + 0x100]
call fcn.0045ae3e
call fcn.00472100
mov eax, dword [esp + 0x14]
mov dword [esp + 0x5c], eax
mov ecx, 0x88888889
mul ecx
shr edx, 5
mov eax, edx
add edx, 0
mov ebx, dword [esp + 0x18]
mov ebp, eax
mov eax, ebx
mov esi, edx
mul ecx
shr edx, 5
imul eax, edx, 0x3c
sub ebx, eax
mov eax, ebx
mov edx, 0x4444444
mul edx
add eax, esi
imul edx, ebp, 0x3c
mov ebp, dword [esp + 0x5c]
mov esi, ebp
sub ebp, edx
shl ebx, 4
lea edx, [ebx + ebp]
mov ebx, eax
mov eax, edx
mul ecx
shr edx, 5
add edx, ebx
mov eax, 0x3c
mul edx
sub esi, eax
mov eax, dword [esp + 0xcc]
mov dword [esp], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], 0
call fcn.0046eae0
mov eax, dword [esp + 0x18]
lea ecx, [eax + 2]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
cmp edx, ecx
jae 0x46f7ad
mov dword [esp + 0x60], eax
lea ebp, [0x4ad0a0]
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
call fcn.00444ff0
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x38]
mov word [ebx + eax], 0x202c
lea edi, [esp + 0xe8]
lea esi, [esp + 0x100]
call fcn.0045ae3e
nop
mov eax, dword [esp + 0xe8]
mov dword [esp], ebx
mov ecx, dword [esp + 0x38]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
and eax, 0x3fffffff
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
call fcn.0046eae0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], eax
lea ecx, [eax + 2]
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
cmp edx, ecx
jae 0x46f83c
lea ebp, [0x4ad0a0]
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
call fcn.00444ff0
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x60]
mov word [ebx + eax], 0x202c
lea edi, [esp + 0xd4]
lea esi, [esp + 0x100]
call fcn.0045ae3e
mov ecx, dword [esp + 0xe4]
test ecx, ecx
jne 0x46f866
mov ecx, dword [0x555058]
cmp dword [0x555058], ecx
je 0x46fa95
test ecx, ecx
je 0x46fa95
cmp dword [0x555054], ecx
jne 0x46f8f8
lea ecx, [eax + 0xc]
mov dword [esp + 0x58], ecx
cmp edx, ecx
jae 0x46f8bb
lea eax, [0x4ad0a0]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
call fcn.00444ff0
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x3c], edx
mov dword [esp + 0xcc], ebx
lea eax, [eax + ebx + 2]
mov dword [esp], eax
lea eax, [0x4babfe]
mov dword [esp + 4], eax
mov dword [esp + 8], 0xa
call fcn.0045b060
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0xcc]
jmp 0x46fae8
mov dword [esp + 0xc8], ecx
lea ebp, [eax + 0x10]
mov dword [esp + 0x58], ebp
cmp edx, ebp
jae 0x46f938
lea eax, [0x4ad0a0]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0x60]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebp
call fcn.00444ff0
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x3c], edx
mov dword [esp + 0xcc], ebx
lea ecx, [eax + ebx + 2]
mov dword [esp], ecx
lea ecx, [0x4bb995]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xe
call fcn.0045b060
mov eax, dword [esp + 0xc8]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00471c80
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x84]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004486b0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0x38]
lea edx, [ecx + eax + 0x10]
mov dword [esp + 0x54], edx
lea ebx, [eax + ecx]
mov dword [esp + 0x50], ebx
mov ebp, dword [esp + 0xc]
mov esi, dword [esp + 0x3c]
cmp esi, edx
jb 0x46f9c8
mov edi, dword [esp + 0xcc]
jmp 0x46fa13
mov dword [esp + 0xd0], ebp
lea eax, [0x4ad0a0]
mov dword [esp], eax
mov ecx, dword [esp + 0xcc]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edx
call fcn.00444ff0
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0xd0]
mov esi, edx
mov edi, ebx
mov dword [esp + 0xcc], edi
mov dword [esp + 0x3c], esi
lea edx, [ecx + edi + 0x10]
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
call fcn.0045b060
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x38]
lea eax, [ecx + eax + 0x11]
mov ecx, dword [esp + 0x3c]
cmp ecx, eax
jb 0x46fa4f
mov edi, dword [esp + 0xcc]
jmp 0x46fa8a
mov dword [esp + 0x4c], eax
lea edx, [0x4ad0a0]
mov dword [esp], edx
mov ebx, dword [esp + 0xcc]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.00444ff0
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
mov ecx, esi
mov ebp, dword [esp + 0x50]
mov byte [ebp + edi + 0x10], 0x29
jmp 0x46fae8
lea ecx, [eax + 0xa]
cmp edx, ecx
jae 0x46fad2
mov dword [esp + 0x58], ecx
lea eax, [0x4ad0a0]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
call fcn.00444ff0
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x58]
mov dword [eax + ebx + 2], 0x656d6974
mov dword [eax + ebx + 6], 0x4354552e
mov eax, ecx
mov ecx, edx
mov edi, ebx
lea edx, [eax + 1]
cmp ecx, edx
jae 0x46fb20
mov dword [esp + 0x38], eax
lea ebx, [0x4ad0a0]
mov dword [esp], ebx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
call fcn.00444ff0
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
lea edx, [eax + 1]
mov eax, dword [esp + 0x38]
mov byte [edi + eax], 0x29
mov dword [esp], 0
mov dword [esp + 4], edi
mov dword [esp + 8], edx
call fcn.00448550
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], ecx
add esp, 0xfc
ret
mov edx, dword [esp + 0x38]
lea ebx, [edx + eax + 7]
mov dword [esp + 0x54], ebx
mov ebp, dword [esp + 0x3c]
cmp ebp, ebx
jb 0x46fb72
mov esi, dword [esp + 0xcc]
jmp 0x46fbc1
mov dword [esp + 0x28], eax
mov dword [esp + 0xc4], ecx
lea eax, [0x4ad0a0]
mov dword [esp], eax
mov ecx, dword [esp + 0xcc]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
call fcn.00444ff0
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0xc4]
mov esi, ebx
mov ebp, edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0xcc], esi
mov dword [esp + 0x3c], ebp
lea edx, [edx + esi + 7]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.0045b060
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0xcc]
jmp 0x46f405
mov eax, ecx
mov ecx, edx
call fcn.0045a800
cmp eax, 0x14
ja 0x46fc5c
lea ecx, [esp + 0xa4]
mov dword [esp], ecx
lea ecx, [0x4ba42c]
mov dword [esp + 4], ecx
mov dword [esp + 8], 8
lea ecx, [eax - 0x14]
neg ecx
mov edx, ecx
neg ecx
sar ecx, 0x1f
and eax, ecx
lea eax, [esp + eax + 0x70]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
lea eax, [0x4b9b27]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 1
call fcn.00448340
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
jmp 0x46fb55
mov ecx, 0x14
call fcn.0045a860
lea esi, [eax + 0x30]
xchg esi, eax
mov byte [esp + ebx + 0x6f], al
xchg esi, eax
mov ebx, dword [esp + 0x40]
mov ecx, edx
mov eax, ebp
test ebx, ebx
seta dl
test ecx, ecx
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg esi, ebx
seta bl
xchg esi, ebx
and ebp, edx
or esi, ebp
xchg esi, eax
test al, al
xchg esi, eax
je 0x46fbfd
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ebx
mov eax, ecx
mov ebp, 0xcccccccd
mul ebp
shr edx, 3
lea edi, [edx + edx*4]
shl edi, 1
sub ecx, edi
mov eax, 0x19999999
mov edi, edx
mul ecx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x48], eax
mov eax, ebp
mul ebx
shr edx, 3
mov eax, edx
add edx, 0
mov dword [esp + 0x44], edx
mov esi, dword [esp + 0x48]
add edx, esi
lea esi, [eax + eax*4]
shl esi, 1
sub ebx, esi
lea esi, [ecx + ecx*2]
lea ebx, [ebx + esi*2]
mov ecx, eax
mov eax, ebp
mov esi, edx
mul ebx
shr edx, 3
mov ebx, edx
add edx, esi
mov dword [esp + 0x40], edx
mov eax, 0xa
mul edx
mov edx, dword [esp + 0x30]
sub edx, eax
add ecx, 0
adc edi, 0
mov ebp, dword [esp + 0x44]
mov eax, edx
mov edx, dword [esp + 0x48]
add ebp, edx
mov edx, dword [esp + 0x5c]
adc edx, edi
add ebx, esi
adc edx, 0
mov ebx, dword [esp + 0x2c]
lea ebp, [ebx - 1]
cmp ebp, 0x14
jb 0x46fc66
mov eax, ebp
mov ecx, 0x14
call fcn.0045a800
nop
call fcn.00459340
jmp fcn.0046f210