Function at 0x415600
Capabilities:
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
sub esp, 0x230
mov eax, dword [0x577690]
xor eax, esp
mov dword [esp + 0x22c], eax
mov eax, dword [esp + 0x23c]
push ebx
push ebp
mov ebp, dword [esp + 0x23c]
push esi
push edi
push 0x40
mov ebx, ecx
lea ecx, [esp + 0x1f5]
push 0
push ecx
mov dword [esp + 0x1c], eax
mov byte [esp + 0x1fc], 0
call fcn.004fc930
add esp, 0xc
cmp ebx, 0x40
jl 0x415a63
mov ecx, 0x10
mov esi, ebp
lea edi, [esp + 0x1f0]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x248]
lea eax, [esp + 0x1f0]
nop
mov cl, byte [eax]
cmp cl, byte [esi]
jne 0x415690
test cl, cl
je 0x41568c
mov cl, byte [eax + 1]
cmp cl, byte [esi + 1]
jne 0x415690
add eax, 2
add esi, 2
test cl, cl
jne 0x415670
xor eax, eax
jmp 0x415695
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x415a63
cmp ebx, 0x44
jb 0x415a63
cmp ebx, 0x48
jb 0x415a63
movzx eax, byte [ebp + 0x44]
movzx edx, byte [ebp + 0x45]
movzx ecx, byte [ebp + 0x46]
shl eax, 8
add eax, edx
movzx edx, byte [ebp + 0x47]
shl eax, 8
add eax, ecx
shl eax, 8
add eax, edx
js 0x415a63
lea esi, [eax + 0x48]
cmp esi, ebx
jg 0x415a63
mov ecx, dword [esp + 0x10]
push eax
lea eax, [ebp + 0x48]
push eax
call fcn.00403d20
mov eax, esi
lea ecx, [eax + 0x20]
mov dword [esp + 0x14], eax
cmp ecx, ebx
ja 0x415a63
mov edx, dword [eax + ebp]
mov ecx, dword [eax + ebp + 4]
mov dword [esp + 0x1d0], edx
mov edx, dword [eax + ebp + 8]
add eax, 0x10
mov dword [esp + 0x1d4], ecx
mov ecx, dword [eax + ebp - 4]
mov dword [esp + 0x1d8], edx
mov edx, dword [eax + ebp]
mov dword [esp + 0x1dc], ecx
mov ecx, dword [eax + ebp + 4]
mov dword [esp + 0x1c0], edx
mov edx, dword [eax + ebp + 8]
mov dword [esp + 0x1c4], ecx
mov ecx, dword [eax + ebp + 0xc]
add eax, 0x10
sub ebx, eax
lea esi, [eax + ebp]
xor eax, eax
mov dword [esp + 0x1a9], eax
mov dword [esp + 0x1b5], eax
mov dword [esp + 0x1c8], edx
mov dword [esp + 0x1a1], eax
mov dword [esp + 0x1a5], eax
mov dword [esp + 0x1ad], eax
mov dword [esp + 0x1b1], eax
mov dword [esp + 0x1b9], eax
mov dl, 0x91
mov word [esp + 0x1bd], ax
push 0x188
mov byte [esp + 0x1c3], al
mov byte [esp + 0x1b0], dl
mov byte [esp + 0x1bc], dl
mov dword [esp + 0x1d0], ecx
mov cl, 0x99
mov al, 0x60
lea edx, [esp + 0x1c]
push 0
push edx
mov edi, ebx
mov byte [esp + 0x1ac], 0xb0
mov byte [esp + 0x1ad], 0xa8
mov byte [esp + 0x1ae], 0xfb
mov byte [esp + 0x1af], 0xce
mov byte [esp + 0x1b0], 0x5a
mov byte [esp + 0x1b1], 0xf8
mov byte [esp + 0x1b2], 0x20
mov byte [esp + 0x1b3], 0xcb
mov byte [esp + 0x1b4], 0xec
mov byte [esp + 0x1b5], 0x4a
mov byte [esp + 0x1b6], 0xc4
mov byte [esp + 0x1b7], 0x18
mov byte [esp + 0x1b9], cl
mov byte [esp + 0x1ba], 0x74
mov byte [esp + 0x1bb], 0x85
mov byte [esp + 0x1bc], 0x9d
mov byte [esp + 0x1bd], 0x96
mov byte [esp + 0x1be], 0x6b
mov byte [esp + 0x1bf], al
mov byte [esp + 0x1c0], 0xd0
mov byte [esp + 0x1c1], 0x12
mov byte [esp + 0x1c2], 0x2b
mov byte [esp + 0x1c3], 0x8b
mov byte [esp + 0x1c5], 0x1f
mov byte [esp + 0x1c6], 0x79
mov byte [esp + 0x1c7], 0x46
mov byte [esp + 0x1c8], 0x23
mov byte [esp + 0x1c9], cl
mov byte [esp + 0x1ca], 0x33
mov byte [esp + 0x1cb], al
call fcn.004fc930
add esp, 0xc
xor eax, eax
lea esp, [esp]
xor byte [esp + eax + 0x1a0], 0x87
inc eax
cmp eax, 0x20
jb 0x4158c0
mov al, byte [esp + 0x1a1]
movzx ecx, byte [esp + 0x1a7]
movzx edx, byte [esp + 0x1af]
mov byte [esp + 0x1a7], al
mov al, byte [esp + 0x1a6]
mov byte [esp + 0x1af], al
mov al, byte [esp + 0x1bf]
mov byte [esp + 0x1a1], cl
movzx ecx, byte [esp + 0x1a2]
mov byte [esp + 0x1a6], dl
movzx edx, byte [esp + 0x1ad]
mov byte [esp + 0x1a2], al
mov al, byte [esp + 0x1a3]
mov byte [esp + 0x1ad], al
mov al, byte [esp + 0x1b1]
mov byte [esp + 0x1bf], cl
movzx ecx, byte [esp + 0x1a9]
mov byte [esp + 0x1a3], dl
lea edx, [esp + 0x1a0]
mov byte [esp + 0x1a9], al
push 0x100
push edx
mov eax, 2
lea ebx, [esp + 0x20]
mov byte [esp + 0x1b9], cl
mov dword [esp + 0x18], 0x103
call fcn.0041acc0
add esp, 8
test eax, eax
jne 0x415a21
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x1e0]
push eax
push ecx
push ebp
mov edx, ebx
push edi
push edx
mov edx, esi
lea ecx, [esp + 0x1e4]
call fcn.00415520
add esp, 0x14
test eax, eax
jne 0x415a21
mov eax, 0x10
lea ecx, [esp + 0x1e0]
lea edx, [esp + 0x1c0]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x4159dd
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x4159c7
jmp 0x415a19
movzx esi, byte [ecx]
movzx eax, byte [edx]
sub eax, esi
jne 0x415a09
movzx eax, byte [edx + 1]
movzx esi, byte [ecx + 1]
sub eax, esi
jne 0x415a09
movzx eax, byte [edx + 2]
movzx esi, byte [ecx + 2]
sub eax, esi
jne 0x415a09
movzx eax, byte [edx + 3]
movzx ecx, byte [ecx + 3]
sub eax, ecx
sar eax, 0x1f
or eax, 1
mov dword [esp + 0x10], 0x113
jne 0x415a21
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x54]
test eax, eax
je 0x415a39
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + 0x1c]
mov edx, dword [ecx + 0x24]
push eax
call edx
add esp, 4
mov eax, 0x40
lea ecx, [esp + 0x18]
dec eax
mov byte [ecx], 0
inc ecx
test eax, eax
jne 0x415a42
mov eax, 0x188
lea ecx, [esp + 0x18]
dec eax
mov byte [ecx], 0
inc ecx
test eax, eax
jne 0x415a54
mov eax, dword [esp + 0x10]
jmp 0x415a68
mov eax, 0x113
mov ecx, dword [esp + 0x23c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004f8e7f
add esp, 0x230
ret