Function at 0x406590
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc0
push ebx
push esi
push edi
lea edi, [ebp - 0xc0]
mov ecx, 0x30
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 0x10]
push eax
call fcn.0041d0a0
add esp, 4
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
push ecx
call fcn.0041d5d6
add esp, 4
mov dword [ebp - 0x80], eax
mov edx, dword [ebp - 0x80]
mov dword [ebp - 0xc], edx
mov word [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 8], 0
jmp 0x4065ff
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 4]
jge 0x406631
mov edx, dword [ebp + 0x10]
add edx, dword [ebp - 0x10]
xor eax, eax
mov al, byte [edx]
cmp eax, 0x20
je 0x40662f
mov ecx, dword [ebp - 0xc]
add ecx, dword [ebp - 8]
mov edx, dword [ebp + 0x10]
add edx, dword [ebp - 0x10]
mov al, byte [edx]
mov byte [ecx], al
mov ecx, dword [ebp - 8]
add ecx, 1
mov dword [ebp - 8], ecx
jmp 0x4065f6
mov dword [ebp - 0x1c], 1
mov dword [ebp - 0x10], 0
jmp 0x40664a
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x10]
xor ecx, ecx
mov cl, byte [eax]
test ecx, ecx
je 0x406672
mov edx, dword [ebp - 0xc]
add edx, dword [ebp - 0x10]
xor eax, eax
mov al, byte [edx]
cmp eax, 0x2c
jne 0x406670
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x406641
mov byte [ebp - 0x44], 0x41
mov byte [ebp - 0x43], 0x42
mov byte [ebp - 0x42], 0x43
mov byte [ebp - 0x41], 0x44
mov byte [ebp - 0x40], 0x45
mov byte [ebp - 0x3f], 0x46
mov byte [ebp - 0x3e], 0x47
mov byte [ebp - 0x3d], 0x48
mov byte [ebp - 0x3c], 0x61
mov byte [ebp - 0x3b], 0x62
mov byte [ebp - 0x3a], 0x63
mov byte [ebp - 0x39], 0x64
mov byte [ebp - 0x38], 0x65
mov byte [ebp - 0x37], 0x66
mov byte [ebp - 0x36], 0x67
mov byte [ebp - 0x35], 0x68
mov byte [ebp - 0x34], 0x2b
mov byte [ebp - 0x33], 0x2d
mov byte [ebp - 0x32], 0x3c
mov byte [ebp - 0x31], 0x2a
mov byte [ebp - 0x30], 0x5e
mov byte [ebp - 0x2f], 0x7c
mov byte [ebp - 0x2e], 0x3f
mov byte [ebp - 0x2d], 0x3d
mov byte [ebp - 0x2c], 0x26
mov byte [ebp - 0x2b], 0x31
mov byte [ebp - 0x2a], 0x32
mov byte [ebp - 0x29], 0x33
mov byte [ebp - 0x28], 0x34
mov byte [ebp - 0x27], 0x35
mov byte [ebp - 0x26], 0x36
mov byte [ebp - 0x25], 0x37
mov byte [ebp - 0x24], 0x38
mov byte [ebp - 0x23], 0x39
mov byte [ebp - 0x22], 0x30
mov byte [ebp - 0x21], 0x2c
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x10], 0
jmp 0x40671b
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 8]
jge 0x4067ac
mov dword [ebp - 0x14], 0
jmp 0x406739
mov ecx, dword [ebp - 0x14]
add ecx, 1
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], 0x24
jae 0x40675f
mov edx, dword [ebp - 0xc]
add edx, dword [ebp - 0x10]
xor eax, eax
mov al, byte [edx]
mov ecx, dword [ebp - 0x14]
xor edx, edx
mov dl, byte [ebp + ecx - 0x44]
cmp eax, edx
jne 0x40675d
mov dword [ebp - 0x48], 1
jmp 0x406730
cmp dword [ebp - 0x48], 0
jne 0x406770
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 8], eax
jmp 0x406777
mov dword [ebp - 0x48], 0
mov ecx, dword [ebp - 0xc]
add ecx, dword [ebp - 0x10]
xor edx, edx
mov dl, byte [ecx]
cmp edx, 0x61
jl 0x4067a7
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x10]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x68
jg 0x4067a7
mov edx, dword [ebp - 0xc]
add edx, dword [ebp - 0x10]
mov al, byte [edx]
sub al, 0x20
mov ecx, dword [ebp - 0xc]
add ecx, dword [ebp - 0x10]
mov byte [ecx], al
jmp 0x406712
mov dword [ebp - 0x50], 1
mov dword [ebp - 0x54], 0
mov byte [ebp - 0x5c], 0x2b
mov byte [ebp - 0x5b], 0x2d
mov byte [ebp - 0x5a], 0x3c
mov byte [ebp - 0x59], 0x2a
mov byte [ebp - 0x58], 0x5e
mov byte [ebp - 0x57], 0x26
mov byte [ebp - 0x56], 0x7c
mov byte [ebp - 0x55], 0x3f
cmp dword [ebp - 8], 5
jne 0x4067e7
mov dword [ebp - 0x54], 1
cmp dword [ebp - 8], 6
jne 0x4067f4
xor eax, eax
jmp 0x406cfe
mov dword [ebp - 0x64], 0
mov word [ebp - 0x18], 0
mov edx, dword [ebp + 0xc]
and edx, 0xffff
mov eax, dword [ebp - 0x64]
add eax, edx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x4c], 1
jmp 0x40682b
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 8]
jge 0x406cf9
mov eax, dword [ebp - 0x10]
add eax, 5
cmp eax, dword [ebp - 8]
jl 0x406849
mov dword [ebp - 0x54], 1
mov ecx, dword [ebp - 0xc]
add ecx, dword [ebp - 0x10]
xor edx, edx
mov dl, byte [ecx]
cmp edx, 0x2c
jne 0x406861
mov dword [ebp - 0x4c], 1
jmp 0x406822
cmp dword [ebp - 0x4c], 1
jne 0x4068c4
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x10]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x41
jl 0x406885
mov edx, dword [ebp - 0xc]
add edx, dword [ebp - 0x10]
xor eax, eax
mov al, byte [edx]
cmp eax, 0x48
jle 0x40688c
xor eax, eax
jmp 0x406cfe
mov word [ebp - 0x60], 0
mov ecx, dword [ebp - 0xc]
add ecx, dword [ebp - 0x10]
xor edx, edx
mov dl, byte [ecx]
sub edx, 0x41
mov word [ebp - 0x60], dx
mov eax, dword [ebp - 0x60]
and eax, 0xffff
shl eax, 0xd
mov word [ebp - 0x60], ax
mov cx, word [ebp - 0x18]
add cx, word [ebp - 0x60]
mov word [ebp - 0x18], cx
mov word [ebp - 0x60], 0
cmp dword [ebp - 0x4c], 2
jne 0x4068e0
mov edx, dword [ebp - 0xc]
add edx, dword [ebp - 0x10]
xor eax, eax
mov al, byte [edx]
cmp eax, 0x3d
je 0x4068e0
xor eax, eax
jmp 0x406cfe
cmp dword [ebp - 0x4c], 3
jne 0x406944
mov ecx, dword [ebp - 0xc]
add ecx, dword [ebp - 0x10]
xor edx, edx
mov dl, byte [ecx]
cmp edx, 0x41
jl 0x406904
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x10]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x48
jle 0x40690b
xor eax, eax
jmp 0x406cfe
mov word [ebp - 0x60], 0
mov edx, dword [ebp - 0xc]
add edx, dword [ebp - 0x10]
xor eax, eax
mov al, byte [edx]
sub eax, 0x41
mov word [ebp - 0x60], ax
mov ecx, dword [ebp - 0x60]
and ecx, 0xffff
shl ecx, 0xa
mov word [ebp - 0x60], cx
mov dx, word [ebp - 0x18]
add dx, word [ebp - 0x60]
mov word [ebp - 0x18], dx
mov word [ebp - 0x60], 0
cmp dword [ebp - 0x4c], 4
jne 0x4069fd
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x14], 0
jmp 0x406967
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 8
jae 0x40698d
mov ecx, dword [ebp - 0xc]
add ecx, dword [ebp - 0x10]
xor edx, edx
mov dl, byte [ecx]
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov cl, byte [ebp + eax - 0x5c]
cmp edx, ecx
jne 0x40698b
mov dword [ebp - 0x68], 1
jmp 0x40695e
cmp dword [ebp - 0x68], 0
jne 0x40699a
xor eax, eax
jmp 0x406cfe
mov dword [ebp - 0x14], 0
jmp 0x4069ac
mov edx, dword [ebp - 0x14]
add edx, 1
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], 7
jge 0x4069cd
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x10]
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebp - 0x14]
xor eax, eax
mov al, byte [ebp + edx - 0x5c]
cmp ecx, eax
jne 0x4069cb
jmp 0x4069cd
jmp 0x4069a3
mov word [ebp - 0x60], 0
mov cx, word [ebp - 0x14]
mov word [ebp - 0x60], cx
mov edx, dword [ebp - 0x60]
and edx, 0xffff
shl edx, 7
mov word [ebp - 0x60], dx
mov ax, word [ebp - 0x18]
add ax, word [ebp - 0x60]
mov word [ebp - 0x18], ax
mov word [ebp - 0x60], 0
cmp dword [ebp - 0x4c], 5
jne 0x406bf1
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x14], 0
jmp 0x406a2e
mov ecx, dword [ebp - 0x14]
add ecx, 1
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], 8
jae 0x406a73
mov edx, dword [ebp - 0xc]
add edx, dword [ebp - 0x10]
xor eax, eax
mov al, byte [edx]
mov ecx, dword [ebp - 0x14]
xor edx, edx
mov dl, byte [ebp + ecx - 0x5c]
cmp eax, edx
jne 0x406a52
mov dword [ebp - 0x74], 1
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x10]
xor ecx, ecx
mov cl, byte [eax + 1]
mov edx, dword [ebp - 0x14]
xor eax, eax
mov al, byte [ebp + edx - 0x5c]
cmp ecx, eax
jne 0x406a71
mov dword [ebp - 0x74], 1
jmp 0x406a25
mov ecx, dword [ebp - 0xc]
add ecx, dword [ebp - 0x10]
xor edx, edx
mov dl, byte [ecx]
cmp edx, 0x41
jl 0x406ad6
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x10]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x48
jg 0x406ad6
mov dword [ebp - 0x70], 0
mov word [ebp - 0x60], 0
mov edx, dword [ebp - 0xc]
add edx, dword [ebp - 0x10]
xor eax, eax
mov al, byte [edx]
sub eax, 0x41
mov word [ebp - 0x60], ax
mov ecx, dword [ebp - 0x60]
and ecx, 0xffff
shl ecx, 3
mov word [ebp - 0x60], cx
mov dx, word [ebp - 0x18]
add dx, word [ebp - 0x60]
mov word [ebp - 0x18], dx
mov word [ebp - 0x60], 0
jmp 0x406bf1
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x10]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x3d
jne 0x406aec
xor eax, eax
jmp 0x406cfe
cmp dword [ebp - 0x74], 0
je 0x406af9
xor eax, eax
jmp 0x406cfe
mov dword [ebp - 0x70], 1
cmp dword [ebp - 0x54], 0
jne 0x406b0c
cmp dword [ebp - 0x50], 0
je 0x406b13
xor eax, eax
jmp 0x406cfe
mov edx, dword [ebp - 0xc]
add edx, dword [ebp - 0x10]
xor eax, eax
mov al, byte [edx + 1]
cmp eax, 0x2c
jne 0x406b86
mov ecx, dword [ebp - 0xc]
add ecx, dword [ebp - 0x10]
xor edx, edx
mov dl, byte [ecx]
cmp edx, 0x30
jl 0x406b41
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x10]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x39
jle 0x406b48
xor eax, eax
jmp 0x406cfe
mov edx, dword [ebp - 0xc]
add edx, dword [ebp - 0x10]
xor eax, eax
mov al, byte [edx]
sub eax, 0x30
mov dword [ebp - 0x6c], eax
mov word [ebp - 0x60], 0
mov cx, word [ebp - 0x6c]
mov word [ebp - 0x60], cx
mov dx, word [ebp - 0x60]
add dx, 0x40
mov word [ebp - 0x60], dx
mov ax, word [ebp - 0x18]
add ax, word [ebp - 0x60]
mov word [ebp - 0x18], ax
mov word [ebp - 0x60], 0
jmp 0x406bf1
mov dword [ebp - 0x6c], 0
mov ecx, dword [ebp - 0xc]
add ecx, dword [ebp - 0x10]
xor edx, edx
mov dl, byte [ecx]
sub edx, 0x30
imul edx, edx, 0xa
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x10]
xor ecx, ecx
mov cl, byte [eax + 1]
lea edx, [edx + ecx - 0x30]
mov dword [ebp - 0x6c], edx
cmp dword [ebp - 0x6c], 0x3f
jle 0x406bbc
xor eax, eax
jmp 0x406cfe
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov word [ebp - 0x60], 0
mov cx, word [ebp - 0x6c]
mov word [ebp - 0x60], cx
mov dx, word [ebp - 0x60]
add dx, 0x40
mov word [ebp - 0x60], dx
mov ax, word [ebp - 0x18]
add ax, word [ebp - 0x60]
mov word [ebp - 0x18], ax
mov word [ebp - 0x60], 0
cmp dword [ebp - 0x4c], 5
jne 0x406ceb
cmp dword [ebp - 0x50], 0
je 0x406c1f
cmp dword [ebp - 0x54], 0
je 0x406c1f
mov word [ebp - 0x60], 5
mov cx, word [ebp - 0x18]
add cx, word [ebp - 0x60]
mov word [ebp - 0x18], cx
mov word [ebp - 0x60], 0
cmp dword [ebp - 0x50], 0
je 0x406c43
cmp dword [ebp - 0x54], 0
jne 0x406c43
mov word [ebp - 0x60], 1
mov dx, word [ebp - 0x18]
add dx, word [ebp - 0x60]
mov word [ebp - 0x18], dx
mov word [ebp - 0x60], 0
cmp dword [ebp - 0x54], 0
je 0x406c67
cmp dword [ebp - 0x50], 0
jne 0x406c67
mov word [ebp - 0x60], 4
mov ax, word [ebp - 0x18]
add ax, word [ebp - 0x60]
mov word [ebp - 0x18], ax
mov word [ebp - 0x60], 0
push 2
lea ecx, [ebp - 0x18]
push ecx
lea edx, [ebp - 0x78]
push edx
call fcn.0041d270
add esp, 0xc
mov al, byte [ebp - 0x78]
mov byte [ebp - 0x76], al
mov cl, byte [ebp - 0x77]
mov byte [ebp - 0x78], cl
mov dl, byte [ebp - 0x76]
mov byte [ebp - 0x77], dl
push 2
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x18]
push ecx
call fcn.0041d270
add esp, 0xc
mov dx, word [ebp - 0x18]
push edx
mov eax, dword [ebp - 0x20]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00404760
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0x7c], 0
je 0x406cbc
xor eax, eax
jmp 0x406cfe
mov edx, dword [ebp - 0x64]
add edx, 1
mov dword [ebp - 0x64], edx
mov word [ebp - 0x18], 0
mov eax, dword [ebp + 0xc]
and eax, 0xffff
mov ecx, dword [ebp - 0x64]
add ecx, eax
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x4c], 1
mov dword [ebp - 0x50], 0
jmp 0x406cf4
mov edx, dword [ebp - 0x4c]
add edx, 1
mov dword [ebp - 0x4c], edx
jmp 0x406822
mov eax, 1
pop edi
pop esi
pop ebx
add esp, 0xc0
cmp ebp, esp
call fcn.0041cdce
mov esp, ebp
pop ebp
ret