Function at 0x406940
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
push esi
push edi
add esp, 0xfffff950
mov dword [esp + 4], 0
mov edi, dword [esp + 0x6cc]
push 1
push 0x63
push 0
push 0
push 0x6c
call fcn.0043e810
mov ebp, eax
test ebp, ebp
jne 0x40697a
test edi, edi
je 0x406975
xor ebp, ebp
jmp 0x40697a
mov ebp, 1
cmp edi, 1
je 0x406daa
cmp ebp, 0
jbe 0x406daa
lea ecx, [esp + 0x68]
push ecx
push dword [esp + 0x6d8]
push dword [esp + 0x6d8]
call fcn.00401020
test eax, eax
jl 0x406daa
mov byte [esp + 0x48], 0
cmp ebp, 1
jne 0x406aaa
test edi, edi
je 0x406a8e
cmp dword [0x473008], edi
jb 0x406aaa
mov dword [esp + 0x48], 0x636e6973
mov word [esp + 0x4c], 0x2065
mov byte [esp + 0x4e], 0
mov eax, dword [0x473008]
sub eax, edi
cmp eax, 0xb4
jae 0x406a14
push 0x1f
lea ecx, [esp + 0x2c]
push ecx
push 3
push eax
call fcn.0041f600
push 4
push 0x469dec
push 0x1f
lea eax, [esp + 0x34]
push eax
call fcn.0041f450
jmp 0x406a79
cmp eax, 0x2a26
jae 0x406a4b
push 0x1f
lea ecx, [esp + 0x2c]
push ecx
push 3
add eax, 0xa
mul dword [0x469dc0]
shr edx, 5
push edx
call fcn.0041f600
push 4
push 0x469de8
push 0x1f
lea eax, [esp + 0x34]
push eax
call fcn.0041f450
jmp 0x406a79
push 0x1f
lea ecx, [esp + 0x2c]
push ecx
push 3
add eax, 0xa
mul dword [0x469dc4]
shr edx, 0xb
push edx
call fcn.0041f600
push 4
push 0x469de4
push 0x1f
lea eax, [esp + 0x34]
push eax
call fcn.0041f450
push 0x1f
lea eax, [esp + 0x2c]
push eax
push 0x1f
lea ecx, [esp + 0x54]
push ecx
call fcn.0041f450
jmp 0x406aaa
mov dword [esp + 0x48], 0x2077654e
mov dword [esp + 0x4c], 0x72657355
mov word [esp + 0x50], 0x203a
mov byte [esp + 0x52], 0
push dword [esp + 0x6c4]
push dword [esp + 0x6c4]
push 0x1f
lea eax, [esp + 0x34]
push eax
call fcn.0041f400
push 0x1f
lea ecx, [esp + 0x2c]
push ecx
push 0x1f
lea eax, [esp + 0x54]
push eax
mov cl, byte [esp + 0x38]
sub cl, 0x61
cmp cl, 0x19
ja 0x406ae1
sub cl, 0x20
add cl, 0x61
mov byte [esp + 0x38], cl
call fcn.0041f450
push 1
lea eax, [esp + 0x6cc]
push eax
push 0x1f
lea ecx, [esp + 0x54]
push ecx
call fcn.0041f450
push 9
lea eax, [esp + 0x75]
push eax
push 0x1f
lea ecx, [esp + 0x54]
push ecx
call fcn.0041f450
fld dword [esp + 0x138]
fcomp dword [0x469dbc]
fnstsw ax
and ah, 0x40
jne 0x406b88
push dword [esp + 0x138]
call fcn.004296b0
push 0x1f
lea eax, [esp + 0xc]
push eax
push 2
sub esp, 4
fstp dword [esp]
call fcn.0041f750
push 2
push 0x469de0
push 0x1f
lea ecx, [esp + 0x54]
push ecx
call fcn.0041f450
push 0x1f
lea eax, [esp + 0xc]
push eax
push 0x1f
lea ecx, [esp + 0x54]
push ecx
call fcn.0041f450
push 2
push 0x469ddc
push 0x1f
lea eax, [esp + 0x54]
push eax
call fcn.0041f450
jmp 0x406cad
mov edi, dword [esp + 0x128]
cmp edi, 0x7fffffff
jge 0x406c0e
cmp edi, 0x3e8
jl 0x406c0e
push 0xffffd8f0
push 0xffff
push 0xffffd8f0
push 0
push 0x52
call fcn.0043e810
cmp edi, eax
jl 0x406c0e
push 2
push 0x469dd8
push 0x1f
lea eax, [esp + 0x54]
push eax
call fcn.0041f450
push 0x1f
lea ecx, [esp + 0xc]
push ecx
push 1
push dword [esp + 0x134]
call fcn.0041f600
push 0x1f
lea eax, [esp + 0xc]
push eax
push 0x1f
lea ecx, [esp + 0x54]
push ecx
call fcn.0041f450
push 2
push 0x469dd4
push 0x1f
lea eax, [esp + 0x54]
push eax
call fcn.0041f450
jmp 0x406cad
mov eax, dword [esp + 0x11c]
cmp eax, 0
jbe 0x406cad
cmp eax, 0x7fffffff
jae 0x406cad
push 0x1f
lea eax, [esp + 0x2c]
push eax
push 0x4c
call fcn.0043e900
mov cl, byte [esp + 0x28]
test cl, cl
je 0x406cad
mov eax, dword [esp + 0x11c]
mov dword [esp], eax
mov dword [esp + 4], 0
fild qword [esp]
fmul dword [0x469db8]
sub esp, 4
fstp dword [esp]
call fcn.00402540
push 0x1f
lea ecx, [esp + 0xc]
push ecx
push 1
push eax
call fcn.0041f600
push 2
push str._m_C
push 0x1f
lea eax, [esp + 0x54]
push eax
call fcn.0041f450
push 0x1f
lea ecx, [esp + 0xc]
push ecx
push 0x1f
lea eax, [esp + 0x54]
push eax
call fcn.0041f450
push 0x1f
lea ecx, [esp + 0x2c]
push ecx
push 0x1f
lea eax, [esp + 0x54]
push eax
call fcn.0041f450
mov esi, 0x4d5c7a
mov edi, 0x4d5c99
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov eax, 9
mov ecx, 0x22e
jmp 0x406cd2
mov eax, edx
lea edx, [ecx + 0x4d5a4c]
lea esi, [ecx + 0x4d5a2d]
mov edi, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
lea edx, [ecx + 0x4d5a2d]
lea esi, [ecx + 0x4d5a0e]
mov edi, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
add ecx, 0xffffffc2
lea edx, [eax - 1]
cmp eax, 1
jne 0x406cd0
lea esi, [esp + 0x48]
mov edi, 0x4d5a4c
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [0x4d5cb8]
cmp dword [0x473008], eax
je 0x406daa
push 0x1f
lea esi, [esp + 0x4c]
push esi
push 0xfb
push 0x5b3504
call fcn.0041f400
cmp ebp, 0x13
jbe 0x406d4e
mov ebp, 0x13
lea edi, [ebp - 1]
cmp ebp, 1
je 0x406d9b
mov esi, 0x1f
jmp 0x406d62
mov edi, ecx
push 6
push str.__
push 0xfb
push 0x5b3504
call fcn.0041f450
push 0x1f
lea eax, [esi + 0x4d5a4c]
push eax
push 0xfb
push 0x5b3504
call fcn.0041f450
add esi, 0x1f
lea ecx, [edi - 1]
cmp edi, 1
jne 0x406d60
mov eax, dword [0x473008]
mov dword [0x4d5cb8], eax
call fcn.00459b60
sub esp, 0xfffff950
pop edi
pop esi
pop ebp
ret 0x18