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

Disassembly:
sub esp, 0x724
push ebx
push ebp
push esi
xor esi, esi
mov dword [esp + 0x34], 0xd5c7d0b4
push edi
mov dword [esp + 0x3c], 0xc6d3c2d8
mov ecx, esi
mov dword [esp + 0x40], 0xcdc2b7bd
mov ebp, 0xff
mov dword [esp + 0x44], 0xb4bdc6d7
mov dword [esp + 0x48], 0xcec2c6d5
movzx eax, byte [esp + ecx + 0x38]
sub ax, 0x61
and ax, bp
mov word [esp + ecx*2 + 0xb4], ax
inc ecx
cmp ecx, 0x14
jl 0x4178b3
xor eax, eax
mov dword [esp + 0x28], 0x44405176
mov word [esp + 0xdc], ax
mov ecx, esi
mov dword [esp + 0x2c], 0x51447548
mov byte [esp + 0x30], 0x4d
mov al, byte [esp + ecx + 0x28]
xor al, 0x25
movzx eax, al
mov word [esp + ecx*2 + 0x88], ax
inc ecx
cmp ecx, 9
jl 0x4178ee
movzx edx, byte [0x42c999]
xor eax, eax
movzx ecx, word [0x42c9b0]
mov word [esp + 0x9a], ax
imul eax, edx, 0xfb9c1d40
or edx, 0xb3d55f58
push 0x400
mov dword [0x42c974], edx
lea edx, [esp + 0xb8]
mov dword [0x42c9b4], eax
mov eax, 0xe6c4
imul ecx, eax
movzx eax, byte [0x42c962]
imul eax, eax, 0x810a83d7
mov word [0x42c9b0], cx
mov ecx, 0x6ca9
mov dword [0x42c964], eax
xor al, 0xf5
mov byte [0x42c999], al
movzx eax, al
sub ax, cx
mov ecx, 0x80000001
mov word [0x42c990], ax
lea eax, [esp + 0x334]
push eax
lea eax, [esp + 0x90]
push eax
call fcn.00423d50
add esp, 0xc
test al, al
je 0x41805e
mov cx, word [0x42c990]
mov edx, 0xeeb55893
movzx eax, cx
and eax, 0x8a106158
mov dword [0x42c9b4], eax
mov eax, 0xe9f6
and cx, ax
mov al, byte [0x42c962]
add al, 0x2d
mov word [0x42c990], cx
mov byte [0x42c999], al
xor ecx, ecx
lea eax, [esp + 0x330]
inc ecx
push eax
call fcn.00415f33
call eax
mov cl, byte [0x42c990]
xor cl, 0x19
mov byte [0x42c999], cl
cmp eax, 0xffffffff
je 0x41805e
test al, 0x10
je 0x41805e
mov dword [esp + 0x20], 0xd3fce3aa
mov ecx, esi
mov byte [esp + 0x24], 0xa5
mov al, byte [esp + ecx + 0x20]
xor al, 0x8f
movzx eax, al
mov word [esp + ecx*2 + 0x60], ax
inc ecx
cmp ecx, 5
jl 0x417a13
xor eax, eax
mov dword [esp + 0x14], 0x42b347d
mov word [esp + 0x6a], ax
mov ecx, esi
mov dword [esp + 0x18], 0x3e36373b
mov word [esp + 0x1c], 0x3f31
mov al, byte [esp + ecx + 0x14]
xor al, 0x58
movzx eax, al
mov word [esp + ecx*2 + 0x9c], ax
inc ecx
cmp ecx, 0xa
jl 0x417a47
or byte [0x42c962], 0xdd
xor eax, eax
mov word [esp + 0xb0], ax
mov eax, 0xf73a
and word [0x42c9b0], ax
mov eax, dword [0x42c964]
or eax, 0x13171daa
mov dword [0x42c9b4], eax
xor al, 0xdf
mov byte [0x42c999], al
lea eax, [esp + 0x330]
push eax
lea eax, [esp + 0x64]
push eax
call fcn.00423fac
mov edx, dword [0x42c974]
mov ebx, eax
pop ecx
pop ecx
mov ecx, edx
mov dword [esp + 0x20], ebx
xor ecx, 0x355000db
add ecx, 0x49157d08
mov dword [0x42c964], ecx
test ebx, ebx
je 0x417efa
mov eax, dword [0x42c9b4]
mov ecx, 0x2fa6
and eax, 0xbacc92bb
xor edx, 0xee1f8eea
mov dword [0x42c974], eax
and edx, 0x9df4fb9d
movzx eax, byte [0x42c962]
add ax, cx
mov dword [0x42c964], edx
mov word [0x42c9b0], ax
xor ecx, ecx
mov al, byte [0x42c999]
mov edx, 0x54e1cc7b
add al, 0xdd
inc ecx
mov byte [0x42c999], al
movzx eax, al
imul eax, eax, 0xb3
mov byte [0x42c962], al
lea eax, [esp + 0xe0]
push eax
push ebx
call fcn.00415f33
call eax
mov cl, byte [0x42c9b4]
mov edi, eax
add cl, 0x73
mov dword [esp + 0x50], edi
mov byte [0x42c962], cl
mov edx, 0x17299c7b
xor ecx, ecx
inc ecx
call fcn.00415f33
mov edx, dword [0x42c974]
mov ecx, edx
and ecx, 0x378c
mov dword [esp + 0x54], eax
mov word [0x42c9b0], cx
xor edx, 0xcf499858
and ecx, 0x6e53be94
mov dword [0x42c974], edx
mov dword [0x42c964], ecx
cmp edi, 0xffffffff
je 0x417edb
imul eax, edx, 0x4f13742d
and cl, 0xba
xor edx, 0xf24e89fe
mov byte [0x42c962], cl
push 0x73
mov dword [0x42c974], edx
mov word [esp + 0x38], 0x8787
mov dword [0x42c9b4], eax
mov eax, 0x9700
xor word [0x42c990], ax
pop ebx
push 0x2e
pop eax
mov word [esp + 0x4c], ax
mov ecx, esi
xor eax, eax
mov word [esp + 0x4e], ax
mov al, byte [esp + ecx + 0x34]
xor al, 0xa9
movzx eax, al
mov word [esp + ecx*2 + 0x58], ax
inc ecx
cmp ecx, 2
jl 0x417bd8
xor eax, eax
mov ecx, 0x5a11
mov word [esp + 0x5c], ax
mov al, byte [0x42c999]
xor al, 4
mov byte [0x42c999], al
movzx eax, al
sub ax, cx
mov word [0x42c9b0], ax
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x110]
push eax
call fcn.004066f6
pop ecx
pop ecx
test eax, eax
je 0x418069
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x110]
push eax
call fcn.004066f6
pop ecx
pop ecx
test eax, eax
je 0x418069
movzx ecx, word [0x42c9b0]
mov eax, ecx
xor eax, 0x14e19d34
test byte [esp + 0xe0], 0xa7
mov dword [0x42c964], eax
je 0x417e91
mov al, byte [0x42c9b4]
or ecx, 0x63d8604b
or al, 0xd6
mov dword [0x42c9b4], ecx
mov byte [0x42c999], al
mov al, byte [0x42c974]
and al, 0x4f
mov byte [0x42c962], al
lea eax, [esp + 0x10c]
push eax
call fcn.0040641e
pop ecx
cmp eax, 4
jb 0x417e91
cmp word [esp + 0x10c], bx
jne 0x417e91
cmp word [esp + 0x10e], bx
jne 0x417e91
cmp word [esp + 0x110], 0x66
jne 0x417e91
push 0x6e
pop eax
cmp word [esp + 0x112], ax
jne 0x417e91
push 7
mov dword [esp + 0x2c], 0x604f5019
mov ecx, esi
mov word [esp + 0x30], 0x5019
mov byte [esp + 0x32], 0x4f
pop ebx
mov al, byte [esp + ecx + 0x28]
xor al, 0x3c
movzx eax, al
mov word [esp + ecx*2 + 0x38], ax
inc ecx
cmp ecx, ebx
jl 0x417cf9
xor eax, eax
mov word [esp + 0x46], ax
mov eax, dword [0x42c9b4]
or eax, 0x31b8
mov word [0x42c990], ax
imul eax, dword [0x42c974], 0x855ed6a7
mov dword [0x42c964], eax
lea eax, [esp + 0x10c]
push eax
lea eax, [esp + 0x334]
push eax
lea eax, [esp + 0x40]
push eax
call fcn.00423fac
movzx edx, byte [0x42c962]
mov ecx, 0x69f8
imul edx, ecx
mov ebp, eax
add esp, 0xc
mov word [0x42c9b0], dx
test ebp, ebp
je 0x417e8e
mov dword [esp + 0x14], 0x43475635
mov ecx, esi
mov word [esp + 0x18], 0x114f
mov edx, 0xff
mov byte [esp + 0x1a], bl
mov word [esp + 0x1b], 0x554e
movzx eax, byte [esp + ecx + 0x14]
add ax, 0x1e
and ax, dx
mov word [esp + ecx*2 + 0x6c], ax
inc ecx
cmp ecx, 9
jl 0x417d90
or dword [0x42c974], 0x3f4fe32d
xor eax, eax
mov word [esp + 0x7e], ax
mov eax, dword [0x42c964]
add eax, 0x5690bf81
mov dword [0x42c9b4], eax
lea eax, [esp + 0x10c]
push eax
lea eax, [esp + 0x70]
push eax
call fcn.00423fac
mov bl, byte [0x42c999]
mov edi, eax
mov dl, byte [0x42c9b0]
pop ecx
pop ecx
movzx ecx, bl
or dl, 0xd5
or ecx, 0x8f04708e
mov byte [0x42c962], dl
mov dword [0x42c9b4], ecx
test edi, edi
je 0x417e58
xor ecx, 0xee77
movzx eax, dl
mov word [0x42c990], cx
and eax, 0xf7aca3c4
mov edx, edi
mov dword [0x42c9b4], eax
mov ecx, ebp
call fcn.0041f03a
mov eax, 0xba1
xor word [0x42c990], ax
movzx eax, byte [0x42c999]
sub eax, 0x2f726522
push edi
mov dword [0x42c9b4], eax
call fcn.004062f0
mov bl, byte [0x42c999]
pop ecx
mov ecx, dword [0x42c9b4]
movzx eax, word [0x42c990]
mov edx, 0x625e
sub eax, 0x3d0f517d
sub cl, 0xd
mov dword [0x42c974], eax
movzx eax, bl
and ax, dx
mov byte [0x42c999], cl
push ebp
mov word [0x42c9b0], ax
call fcn.004062f0
mov edi, dword [esp + 0x54]
pop ecx
push 0x73
pop ebx
lea eax, [esp + 0xe0]
push eax
push edi
call dword [esp + 0x5c]
test eax, eax
jne 0x417bc7
movzx ecx, word [0x42c990]
mov eax, 0x93ac
imul ecx, eax
mov edx, 0x83fbc401
push edi
mov word [0x42c9b0], cx
xor ecx, ecx
inc ecx
call fcn.00415f33
call eax
mov ecx, dword [0x42c964]
mov ebp, 0xff
mov ebx, dword [esp + 0x20]
mov al, byte [0x42c990]
and ecx, 0xcaaa932e
xor al, 0xa4
mov dword [0x42c964], ecx
push ebx
mov byte [0x42c999], al
call fcn.004062f0
pop ecx
mov eax, 0x3e4b
and word [0x42c9b0], ax
mov eax, 0xa031
add word [0x42c990], ax
lea eax, [esp + 0x330]
push eax
lea eax, [esp + 0xa0]
push eax
call fcn.00423fac
pop ecx
pop ecx
movzx ecx, word [0x42c9b0]
mov edi, eax
or ecx, 0xad5dbbf6
mov eax, 0x2830
mov dword [0x42c9b4], ecx
movzx ecx, byte [0x42c999]
and cx, ax
mov word [0x42c990], cx
test edi, edi
je 0x41805e
push 0x70
pop edx
push 0x6e
pop eax
push 7
mov dword [esp + 0x18], 0x686c7b5a
mov ecx, esi
mov dword [esp + 0x1c], 0x766a3674
mov word [esp + 0x20], 0x6d75
mov byte [esp + 0x22], dl
mov byte [esp + 0x23], al
pop ebx
movzx eax, byte [esp + ecx + 0x14]
sub ax, bx
and ax, bp
mov word [esp + ecx*2 + 0x6c], ax
inc ecx
cmp ecx, 0xc
jl 0x417f86
xor eax, eax
mov dword [esp + 0x20], 0xd4e69e9a
mov word [esp + 0x84], ax
mov byte [esp + 0x24], 0xd6
movzx eax, byte [esp + esi + 0x20]
sub ax, dx
and ax, bp
mov word [esp + esi*2 + 0x14], ax
inc esi
cmp esi, 5
jl 0x417fb3
mov ecx, dword [0x42c964]
lea edx, [esp + 0x6c]
xor eax, eax
add ecx, 0x469d
mov word [esp + 0x1e], ax
movzx eax, byte [0x42c974]
imul eax, eax, 0xa6
mov word [0x42c9b0], cx
xor ecx, 0x595c
mov word [0x42c990], cx
mov ecx, edi
push 1
mov byte [0x42c962], al
movzx eax, al
imul eax, eax, 0x903ade57
mov dword [0x42c9b4], eax
lea eax, [esp + 0x18]
push eax
call fcn.0041e7b2
mov ax, word [0x42c9b0]
mov ecx, 0xb531
xor ax, cx
movzx ecx, ax
mov word [0x42c9b0], ax
xor ecx, 0xf50a
imul eax, dword [0x42c964], 0x7f6b2d48
push edi
mov word [0x42c990], cx
mov dword [0x42c9b4], eax
call fcn.004062f0
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x724
ret
movzx ecx, byte [0x42c999]
imul eax, ecx, 0xe76f
and ecx, 0xf7fd
mov word [0x42c990], cx
mov word [0x42c9b0], ax
mov al, byte [0x42c974]
and al, 0x30
mov byte [0x42c962], al
jmp 0x417e91