Function at 0x4979f0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x7c]
cmp eax, dword [ecx + 8]
jbe 0x498523
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.0045ed5e
mov byte [esp + 0x14], 0
call fcn.0049fc70
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.00497110
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.0045ed5e
mov byte [esp + 0x14], 1
call fcn.0049fc70
mov eax, dword [esp + 0x1c]
lea ecx, [eax - 1]
cmp ecx, 0xb
ja 0x497bae
mov eax, dword [esp + 0x38]
lea ecx, [eax + 7]
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0x3c]
cmp edx, ecx
jb 0x497ace
mov ebx, dword [esp + 0xcc]
jmp 0x497b03
lea ebx, [0x60da40]
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.004476d0
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.0045ed5e
mov byte [esp + 0x14], 1
call fcn.0049fc70
mov eax, dword [esp + 0x1c]
lea ecx, [eax - 1]
cmp ecx, 0xb
jbe 0x497b8c
mov dword [esp + 0x34], eax
lea edi, [esp + 0x70]
xor eax, eax
call fcn.0045e87b
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 0x497b7a
mov eax, 0x14
jmp 0x498457
mov byte [esp + 0x83], 0x30
mov eax, 0x13
jmp 0x4983dd
mov edx, dword [0x7ea3b4]
mov ebx, dword [0x7ea3b0]
cmp edx, ecx
jbe 0x4983d4
lea eax, [ebx + eax*8 - 8]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
jmp 0x498335
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.00497110
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 0x497c1e
mov dword [esp + 0x60], ecx
lea ebp, [0x60da40]
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.004476d0
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.0045ed5e
mov byte [esp + 0x14], 1
call fcn.0049fc70
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.00497110
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 0x497cbc
mov dword [esp + 0x60], eax
lea ebp, [0x60da40]
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.004476d0
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.0045ed5e
call fcn.0049e200
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.004583c0
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.00497110
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 0x497d8d
mov dword [esp + 0x60], eax
lea ebp, [0x60da40]
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.004476d0
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.0045ed5e
call fcn.0049e200
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.00497110
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 0x497e99
mov dword [esp + 0x60], eax
lea ebp, [0x60da40]
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.004476d0
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.0045ed5e
call fcn.0049e200
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.00497110
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 0x497f8d
mov dword [esp + 0x60], eax
lea ebp, [0x60da40]
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.004476d0
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.0045ed5e
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.00497110
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 0x49801c
lea ebp, [0x60da40]
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.004476d0
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.0045ed5e
mov ecx, dword [esp + 0xe4]
test ecx, ecx
jne 0x498046
mov ecx, dword [0x7e990c]
cmp dword [0x7e990c], ecx
je 0x498275
test ecx, ecx
je 0x498275
cmp dword [0x7e9908], ecx
jne 0x4980d8
lea ecx, [eax + 0xc]
mov dword [esp + 0x58], ecx
cmp edx, ecx
jae 0x49809b
lea eax, [0x60da40]
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.004476d0
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, [0x63dd98]
mov dword [esp + 4], eax
mov dword [esp + 8], 0xa
call fcn.0045ef80
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0xcc]
jmp 0x4982c8
mov dword [esp + 0xc8], ecx
lea ebp, [eax + 0x10]
mov dword [esp + 0x58], ebp
cmp edx, ebp
jae 0x498118
lea eax, [0x60da40]
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.004476d0
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, [0x63f459]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xe
call fcn.0045ef80
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.0049a460
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.0044ae20
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 0x4981a8
mov edi, dword [esp + 0xcc]
jmp 0x4981f3
mov dword [esp + 0xd0], ebp
lea eax, [0x60da40]
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.004476d0
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.0045ef80
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x38]
lea eax, [ecx + eax + 0x11]
mov ecx, dword [esp + 0x3c]
cmp ecx, eax
jb 0x49822f
mov edi, dword [esp + 0xcc]
jmp 0x49826a
mov dword [esp + 0x4c], eax
lea edx, [0x60da40]
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.004476d0
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 0x4982c8
lea ecx, [eax + 0xa]
cmp edx, ecx
jae 0x4982b2
mov dword [esp + 0x58], ecx
lea eax, [0x60da40]
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.004476d0
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 0x498300
mov dword [esp + 0x38], eax
lea ebx, [0x60da40]
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.004476d0
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.0044acc0
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 0x498352
mov esi, dword [esp + 0xcc]
jmp 0x4983a1
mov dword [esp + 0x28], eax
mov dword [esp + 0xc4], ecx
lea eax, [0x60da40]
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.004476d0
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.0045ef80
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0xcc]
jmp 0x497be5
mov eax, ecx
mov ecx, edx
call fcn.0045e650
cmp eax, 0x14
ja 0x49843c
lea ecx, [esp + 0xa4]
mov dword [esp], ecx
lea ecx, [0x63d13b]
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, [0x63c328]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 1
call fcn.0044aab0
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
jmp 0x498335
mov ecx, 0x14
call fcn.0045e6b0
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 0x4983dd
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 0x498446
mov eax, ebp
mov ecx, 0x14
call fcn.0045e650
nop
call fcn.0045d190
jmp fcn.004979f0