Function at 0x46c840
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x14c
lea edx, [esp + 0x7c]
mov dword [esp + 0x50], ecx
lea eax, [esp + 0x140]
mov dword [esp], edx
mov dword [esp + 0x94], 0x567468
mov dword [esp + 0x98], 0x5c0596
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], 0x46dc16
mov dword [esp + 0xa4], esp
call sub.libgcc_s_sjlj_1.dll__Unwind_SjLj_Register
mov ecx, dword [esp + 0x164]
test ecx, ecx
je 0x46daf5
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x68], 0
mov ebp, dword [esp + 0x160]
add ecx, 8
mov dword [esp + 0x64], ebp
mov dword [esp + 0x58], ecx
lea esi, [esi]
mov esi, dword [esp + 0x64]
xor eax, eax
xor ebx, ebx
mov edi, dword [esp + 0x50]
lea esi, [esi]
mov edx, dword [edi + 0x3c]
movzx ecx, byte [esi + eax]
add edx, eax
add eax, 1
movzx ebp, byte [edx]
add ecx, ebp
add ecx, ebx
movzx ebx, cx
mov byte [edx], cl
shr ebx, 8
cmp eax, 0x20
jne 0x46c8d0
xor al, al
mov dword [esp + eax + 0x100], 0
add eax, 4
cmp eax, 0x20
jb 0x46c8f2
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx + 0x4c]
mov esi, dword [eax + 4]
mov ebx, dword [eax]
mov edx, dword [eax + 0x18]
mov edi, dword [eax + 0xc]
mov dword [esp + 0x4c], esi
mov ecx, dword [eax + 0x10]
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x3c], ebx
mov esi, dword [eax + 8]
bswap edx
mov dword [esp + 0xdc], edx
mov ebx, dword [eax + 0x14]
bswap edi
mov dword [esp + 0xc8], edi
mov eax, dword [eax + 0x1c]
bswap ecx
mov dword [esp + 0xd4], ecx
bswap ebp
mov dword [esp + 0x4c], ebp
mov ebp, dword [esp + 0x3c]
mov edx, dword [esp + 0x64]
bswap esi
mov dword [esp + 0xcc], esi
mov ecx, dword [esp + 0x64]
bswap ebx
mov dword [esp + 0xd0], ebx
bswap eax
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x64]
bswap ebp
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x4c]
mov edx, dword [edx + 4]
mov ebx, ecx
mov esi, dword [ecx + 8]
mov eax, dword [eax]
mov dword [esp + 0xc0], ebp
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x40], edx
mov edi, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
bswap esi
mov dword [esp + 0x44], eax
mov dword [esp + 0xc4], ebp
mov ebp, ebx
mov ebx, dword [ebx + 0x14]
mov eax, dword [ebp + 0x18]
bswap edi
mov edx, dword [ebp + 0x1c]
bswap ecx
mov ebp, dword [esp + 0x40]
bswap ebx
bswap eax
bswap edx
bswap ebp
mov dword [esp + 0x40], ebp
mov ebp, dword [esp + 0x44]
mov dword [esp + 0xfc], eax
lea eax, [esp + 0x100]
mov dword [esp + 0xe8], edi
mov dword [esp + 0xec], esi
bswap ebp
mov dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x40]
mov dword [esp + 0xf0], ebx
mov dword [esp + 0xf4], ecx
mov dword [esp + 0xf8], edx
mov dword [esp + 0xe0], ebp
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x48], eax
mov dword [esp + 0x38], 0
mov dword [esp + 0xe4], ebp
lea esi, [esi]
xor eax, eax
mov dword [esp + eax + 0x120], 0
add eax, 4
cmp eax, 0x20
jb 0x46ca32
mov edx, dword [esp + 0x40]
mov dword [esp + 0x34], 0
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ecx
lea ebx, [esp + 0x120]
xor esi, esi
mov dword [esp + 0x10], edi
add ebx, dword [esp + 0x34]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x30], ebx
nop
mov ecx, esi
mov edx, dword [esp + 0x2c]
not ecx
mov eax, dword [esp + 0x28]
and ecx, 7
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
lea ebx, [ecx*8]
mov ecx, ebx
shrd eax, edx, cl
shr edx, cl
test bl, 0x20
cmovne eax, edx
xor edx, edx
shrd edi, ebp, cl
shr ebp, cl
test bl, 0x20
cmovne edi, ebp
cmovne ebp, edx
mov dword [esp + 0x18], edi
xor al, byte [esp + 0x18]
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x30]
mov byte [ebp + esi*4], al
add esi, 1
cmp esi, 8
jne 0x46ca80
add dword [esp + 0x34], 1
cmp dword [esp + 0x34], 4
je 0x46cb10
mov eax, dword [esp + 0x34]
mov edx, dword [esp + eax*8 + 0xe0]
mov ecx, dword [esp + eax*8 + 0xe4]
mov edi, dword [esp + eax*8 + 0xc0]
mov ebp, dword [esp + eax*8 + 0xc4]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ecx
jmp 0x46ca65
mov ecx, dword [esp + 0x58]
mov dword [esp], 0x20
mov dword [esp + 0x80], 0xffffffff
call fcn.0059c8b0
sub esp, 4
test al, al
je 0x46db82
mov ecx, dword [esp + 0x50]
lea ebx, [esp + 0x120]
mov eax, dword [ecx + 8]
mov dword [esp], ebx
mov dword [esp + 4], 0x20
mov ecx, dword [esp + 0x58]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x80], 0xffffffff
call eax
sub esp, 8
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x38]
mov eax, dword [ecx + 8]
mov dword [esp + 8], 1
mov dword [esp + 4], ebx
mov edx, dword [ecx + 0x4c]
mov ecx, dword [esp + 0x58]
lea edx, [edx + esi*8]
mov dword [esp], edx
call dword [eax + 0x20]
sub esp, 0xc
cmp esi, 3
je 0x46cccb
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0xcc]
mov ebp, dword [esp + 0xd0]
mov edx, dword [esp + 0xd4]
mov dword [esp + 0xc0], eax
xor ecx, eax
mov esi, dword [esp + 0xd8]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0xdc]
mov dword [esp + 0xc4], edi
mov dword [esp + 0xc8], ebp
mov dword [esp + 0xcc], edx
xor ecx, edi
cmp dword [esp + 0x38], 1
mov dword [esp + 0xd0], esi
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0xdc], ecx
je 0x46db0e
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0x4c], eax
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x3c], edi
mov edx, dword [esp + 0xec]
mov esi, dword [esp + 0x44]
mov ebp, dword [esp + 0xf0]
add dword [esp + 0x38], 1
xor ebx, ecx
add dword [esp + 0x48], 8
mov dword [esp + 0x30], ebx
xor esi, edx
mov ebx, dword [esp + 0xf4]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0xfc]
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], ebx
xor ecx, dword [esp + 0x40]
mov dword [esp + 0xe0], ebp
xor edx, dword [esp + 0x44]
mov dword [esp + 0xe4], ebx
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0xf8]
mov dword [esp + 0xec], esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0xf8], ecx
mov dword [esp + 0xfc], edx
mov dword [esp + 0xf4], ebp
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xf0], esi
jmp 0x46ca30
xor eax, eax
mov dword [esp + eax + 0x120], 0
add eax, 4
cmp eax, 0x20
jb 0x46cccd
movzx ebx, byte [esp + 0x11b]
movzx eax, byte [esp + 0x118]
movzx ecx, byte [esp + 0x11a]
movzx edx, byte [esp + 0x119]
mov byte [esp + 0x123], bl
movzx ebx, byte [esp + 0x102]
mov byte [esp + 0x120], al
movzx eax, byte [esp + 0x11c]
mov byte [esp + 0x122], cl
movzx ecx, byte [esp + 0x11e]
mov byte [esp + 0x121], dl
movzx edx, byte [esp + 0x11d]
xor bl, byte [esp + 0x100]
mov byte [esp + 0x124], al
movzx eax, byte [esp + 0x104]
mov byte [esp + 0x126], cl
mov byte [esp + 0x125], dl
movzx edx, byte [esp + 0x11f]
mov ebp, ebx
movzx ebx, byte [esp + 0x103]
xor eax, ebp
mov byte [esp + 0x60], al
movzx eax, byte [esp + 0x118]
mov byte [esp + 0x127], dl
xor bl, byte [esp + 0x101]
xor eax, ecx
xor al, byte [esp + 0x106]
mov edi, ebx
movzx ebx, byte [esp + 0x11a]
xor al, byte [esp + 0x60]
xor bl, byte [esp + 0x118]
mov byte [esp + 0x128], al
movzx eax, byte [esp + 0x105]
xor eax, edi
mov byte [esp + 0x61], al
movzx eax, byte [esp + 0x119]
xor eax, edx
xor al, byte [esp + 0x107]
xor al, byte [esp + 0x61]
mov byte [esp + 0x129], al
mov byte [esp + 0x5c], bl
movzx eax, byte [esp + 0x100]
xor eax, ecx
xor al, byte [esp + 0x108]
xor eax, ebx
movzx ebx, byte [esp + 0x104]
mov byte [esp + 0x12a], al
movzx eax, byte [esp + 0x11b]
xor bl, byte [esp + 0x100]
xor al, byte [esp + 0x119]
mov byte [esp + 0x5d], al
movzx eax, byte [esp + 0x101]
xor eax, edx
xor al, byte [esp + 0x109]
xor al, byte [esp + 0x5d]
mov byte [esp + 0x12b], al
movzx eax, byte [esp + 0x5c]
xor al, byte [esp + 0x11c]
mov byte [esp + 0x5e], al
movzx eax, byte [esp + 0x106]
xor eax, ecx
xor al, byte [esp + 0x10a]
xor eax, ebx
xor al, byte [esp + 0x5e]
mov byte [esp + 0x12c], al
movzx eax, byte [esp + 0x105]
xor al, byte [esp + 0x101]
mov esi, eax
movzx eax, byte [esp + 0x5d]
xor al, byte [esp + 0x11d]
mov byte [esp + 0x5f], al
movzx eax, byte [esp + 0x107]
xor eax, edx
xor al, byte [esp + 0x10b]
xor eax, esi
xor al, byte [esp + 0x5f]
mov byte [esp + 0x12d], al
movzx eax, byte [esp + 0x10c]
xor al, byte [esp + 0x108]
xor eax, ebx
xor al, byte [esp + 0x5e]
mov byte [esp + 0x12e], al
movzx eax, byte [esp + 0x10d]
xor al, byte [esp + 0x109]
xor eax, esi
xor al, byte [esp + 0x5f]
mov byte [esp + 0x12f], al
movzx eax, byte [esp + 0x106]
movzx ebx, byte [esp + 0x11c]
xor al, byte [esp + 0x102]
xor bl, byte [esp + 0x11a]
xor al, byte [esp + 0x10a]
mov esi, ebx
movzx ebx, byte [esp + 0x11d]
xor esi, ecx
xor al, byte [esp + 0x10e]
xor bl, byte [esp + 0x11b]
xor eax, esi
mov byte [esp + 0x130], al
movzx eax, byte [esp + 0x107]
xor ebx, edx
xor al, byte [esp + 0x103]
xor al, byte [esp + 0x10b]
xor al, byte [esp + 0x10f]
xor eax, ebx
mov byte [esp + 0x131], al
movzx eax, byte [esp + 0x11c]
xor al, byte [esp + 0x118]
mov byte [esp + 0x30], al
movzx eax, byte [esp + 0x108]
xor al, byte [esp + 0x106]
xor al, byte [esp + 0x10c]
xor al, byte [esp + 0x110]
xor eax, ebp
xor al, byte [esp + 0x30]
mov byte [esp + 0x132], al
movzx eax, byte [esp + 0x11d]
xor al, byte [esp + 0x119]
mov byte [esp + 0x28], al
movzx eax, byte [esp + 0x109]
xor al, byte [esp + 0x107]
xor al, byte [esp + 0x10d]
xor al, byte [esp + 0x111]
xor eax, edi
xor al, byte [esp + 0x28]
mov byte [esp + 0x133], al
movzx eax, byte [esp + 0x11a]
xor eax, ecx
xor al, byte [esp + 0x102]
xor al, byte [esp + 0x104]
xor al, byte [esp + 0x108]
xor al, byte [esp + 0x10a]
xor al, byte [esp + 0x10e]
xor al, byte [esp + 0x112]
mov byte [esp + 0x134], al
movzx eax, byte [esp + 0x11b]
xor cl, byte [esp + 0x10a]
xor eax, edx
xor dl, byte [esp + 0x10b]
xor al, byte [esp + 0x103]
xor cl, byte [esp + 0x10c]
xor dl, byte [esp + 0x10d]
xor al, byte [esp + 0x105]
xor cl, byte [esp + 0x110]
xor dl, byte [esp + 0x111]
xor al, byte [esp + 0x109]
xor cl, byte [esp + 0x114]
xor al, byte [esp + 0x10b]
xor ecx, ebp
xor cl, byte [esp + 0x30]
xor al, byte [esp + 0x10f]
mov byte [esp + 0x136], cl
movzx ecx, byte [esp + 0x115]
xor al, byte [esp + 0x113]
xor edx, ecx
xor edx, edi
movzx edi, byte [esp + 0x117]
mov byte [esp + 0x135], al
movzx eax, byte [esp + 0x106]
xor dl, byte [esp + 0x28]
xor al, byte [esp + 0x100]
mov byte [esp + 0x137], dl
movzx edx, byte [esp + 0x116]
xor al, byte [esp + 0x10c]
xor al, byte [esp + 0x10e]
xor al, byte [esp + 0x112]
xor eax, edx
xor al, byte [esp + 0x5c]
mov byte [esp + 0x138], al
movzx eax, byte [esp + 0x107]
xor al, byte [esp + 0x101]
xor al, byte [esp + 0x10d]
xor al, byte [esp + 0x10f]
xor al, byte [esp + 0x113]
xor eax, edi
xor al, byte [esp + 0x5d]
mov byte [esp + 0x139], al
movzx eax, byte [esp + 0x108]
xor al, byte [esp + 0x102]
xor al, byte [esp + 0x10e]
xor al, byte [esp + 0x110]
xor al, byte [esp + 0x114]
xor al, byte [esp + 0x5e]
mov byte [esp + 0x13a], al
movzx eax, byte [esp + 0x109]
xor al, byte [esp + 0x103]
xor al, byte [esp + 0x10f]
xor al, byte [esp + 0x111]
xor eax, ecx
xor al, byte [esp + 0x5f]
mov byte [esp + 0x13b], al
movzx eax, byte [esp + 0x10a]
xor al, byte [esp + 0x104]
xor al, byte [esp + 0x110]
xor al, byte [esp + 0x112]
xor eax, edx
xor eax, esi
mov byte [esp + 0x13c], al
movzx eax, byte [esp + 0x10b]
xor al, byte [esp + 0x105]
xor al, byte [esp + 0x111]
xor al, byte [esp + 0x113]
xor eax, edi
xor eax, ebx
mov byte [esp + 0x13d], al
movzx eax, byte [esp + 0x10c]
xor al, byte [esp + 0x11c]
xor al, byte [esp + 0x112]
xor al, byte [esp + 0x114]
xor al, byte [esp + 0x60]
mov byte [esp + 0x13e], al
movzx eax, byte [esp + 0x10d]
xor al, byte [esp + 0x11d]
xor al, byte [esp + 0x113]
xor eax, ecx
xor al, byte [esp + 0x61]
mov byte [esp + 0x13f], al
mov ecx, dword [esp + 0x64]
xor eax, eax
nop
mov edx, dword [ecx + eax]
xor edx, dword [esp + eax + 0x120]
mov dword [esp + eax + 0x100], edx
mov edx, dword [ecx + eax + 4]
xor edx, dword [esp + eax + 0x124]
mov dword [esp + eax + 0x104], edx
add eax, 8
cmp eax, 0x20
jne 0x46d200
movzx ebx, byte [esp + 0x102]
movzx eax, byte [esp + 0x100]
movzx edx, byte [esp + 0x104]
movzx ecx, byte [esp + 0x106]
mov byte [esp + 0x30], bl
movzx ebx, byte [esp + 0x118]
xor byte [esp + 0x30], al
movzx eax, byte [esp + 0x11e]
xor byte [esp + 0x30], dl
xor byte [esp + 0x30], cl
movzx ecx, byte [esp + 0x103]
xor byte [esp + 0x30], bl
movzx ebx, byte [esp + 0x101]
mov byte [esp + 0x28], cl
movzx ecx, byte [esp + 0x119]
xor byte [esp + 0x30], al
xor byte [esp + 0x28], bl
movzx eax, byte [esp + 0x105]
movzx ebx, byte [esp + 0x11f]
movzx edx, byte [esp + 0x30]
xor byte [esp + 0x28], al
mov byte [esp + 0x120], dl
movzx edx, byte [esp + 0x107]
xor byte [esp + 0x28], dl
lea edx, [esp + 0x102]
xor byte [esp + 0x28], cl
lea ecx, [esp + 0x100]
xor byte [esp + 0x28], bl
mov dword [esp + 4], edx
movzx eax, byte [esp + 0x28]
mov dword [esp], ecx
mov dword [esp + 8], 0x1e
mov byte [esp + 0x121], al
call sub.msvcrt.dll_memmove
movzx eax, byte [esp + 0x28]
xor edx, edx
mov ecx, dword [esp + 0x50]
movzx ebx, byte [esp + 0x30]
mov byte [esp + 0x11f], al
mov eax, dword [ecx + 0x4c]
mov byte [esp + 0x11e], bl
lea esi, [esi]
lea edi, [edi]
mov ecx, dword [eax + edx]
xor dword [esp + edx + 0x100], ecx
mov ecx, dword [eax + edx + 4]
xor dword [esp + edx + 0x104], ecx
add edx, 8
cmp edx, 0x20
jne 0x46d320
movzx ebx, byte [esp + 0x106]
movzx edx, byte [esp + 0x114]
movzx ecx, byte [esp + 0x116]
movzx esi, byte [esp + 0x11c]
xor bl, byte [esp + 0x102]
xor dl, byte [esp + 0x10e]
mov byte [esp + 0x6c], bl
movzx ebx, byte [esp + 0x11a]
mov ebp, edx
xor ebp, ecx
movzx ecx, byte [esp + 0x107]
xor ebp, ebx
movzx ebx, byte [esp + 0x115]
mov edx, ebp
xor edx, esi
xor cl, byte [esp + 0x103]
mov byte [esp + 0x6d], dl
movzx edx, byte [esp + 0x6c]
xor bl, byte [esp + 0x10f]
mov byte [esp + 0x6e], cl
movzx ecx, byte [esp + 0x11d]
xor dl, byte [esp + 0x11e]
mov edi, ebx
movzx ebx, byte [esp + 0x11b]
xor dl, byte [esp + 0x6d]
mov byte [esp + 0x120], dl
movzx edx, byte [esp + 0x117]
xor edi, edx
xor edi, ebx
movzx ebx, byte [esp + 0x100]
mov edx, edi
xor edx, ecx
mov byte [esp + 0x6f], dl
movzx edx, byte [esp + 0x6e]
xor bl, byte [esp + 0x102]
xor dl, byte [esp + 0x11f]
mov byte [esp + 0x62], bl
xor bl, byte [esp + 0x106]
xor dl, byte [esp + 0x6f]
mov byte [esp + 0x70], bl
xor bl, byte [esp + 0x108]
mov byte [esp + 0x121], dl
movzx edx, byte [esp + 0x116]
mov byte [esp + 0x71], bl
xor edx, esi
xor dl, byte [esp + 0x110]
xor edx, ebx
mov byte [esp + 0x122], dl
movzx edx, byte [esp + 0x101]
movzx ebx, byte [esp + 0x108]
xor dl, byte [esp + 0x103]
xor bl, byte [esp + 0x102]
mov byte [esp + 0x63], dl
xor dl, byte [esp + 0x107]
mov byte [esp + 0x5f], bl
mov byte [esp + 0x72], dl
xor dl, byte [esp + 0x109]
mov byte [esp + 0x73], dl
movzx edx, byte [esp + 0x117]
xor edx, ecx
xor dl, byte [esp + 0x111]
xor dl, byte [esp + 0x73]
mov byte [esp + 0x123], dl
movzx edx, byte [esp + 0x104]
xor byte [esp + 0x5f], dl
movzx edx, byte [esp + 0x112]
movzx ebx, byte [esp + 0x5f]
xor dl, byte [esp + 0x11e]
xor bl, byte [esp + 0x10a]
mov byte [esp + 0x74], bl
movzx ebx, byte [esp + 0x118]
xor edx, ebx
xor dl, byte [esp + 0x74]
mov byte [esp + 0x124], dl
movzx edx, byte [esp + 0x109]
xor dl, byte [esp + 0x103]
mov byte [esp + 0x61], dl
movzx edx, byte [esp + 0x105]
xor byte [esp + 0x61], dl
movzx edx, byte [esp + 0x61]
xor dl, byte [esp + 0x10b]
mov byte [esp + 0x75], dl
movzx edx, byte [esp + 0x113]
xor dl, byte [esp + 0x11f]
xor dl, byte [esp + 0x119]
xor dl, byte [esp + 0x75]
mov byte [esp + 0x125], dl
movzx edx, byte [esp + 0x11a]
xor dl, byte [esp + 0x114]
mov byte [esp + 0x76], dl
xor dl, byte [esp + 0x11e]
xor dl, byte [esp + 0x10a]
xor edx, ebx
xor dl, byte [esp + 0x10c]
xor dl, byte [esp + 0x62]
mov byte [esp + 0x126], dl
movzx edx, byte [esp + 0x11b]
xor dl, byte [esp + 0x115]
mov byte [esp + 0x77], dl
xor dl, byte [esp + 0x11f]
xor dl, byte [esp + 0x10b]
xor dl, byte [esp + 0x119]
xor dl, byte [esp + 0x10d]
xor dl, byte [esp + 0x63]
mov byte [esp + 0x127], dl
movzx edx, byte [esp + 0x10e]
xor dl, byte [esp + 0x106]
mov byte [esp + 0x56], dl
xor dl, byte [esp + 0x116]
mov byte [esp + 0x78], dl
movzx edx, byte [esp + 0x11a]
xor edx, esi
xor dl, byte [esp + 0x11e]
xor dl, byte [esp + 0x100]
xor edx, ebx
xor dl, byte [esp + 0x10c]
xor dl, byte [esp + 0x78]
mov byte [esp + 0x128], dl
movzx edx, byte [esp + 0x10f]
xor dl, byte [esp + 0x107]
mov byte [esp + 0x57], dl
xor dl, byte [esp + 0x117]
mov byte [esp + 0x79], dl
movzx edx, byte [esp + 0x11b]
xor edx, ecx
xor dl, byte [esp + 0x11f]
xor dl, byte [esp + 0x101]
xor dl, byte [esp + 0x119]
xor dl, byte [esp + 0x10d]
xor dl, byte [esp + 0x79]
mov byte [esp + 0x129], dl
movzx edx, byte [esp + 0x56]
xor dl, byte [esp + 0x11a]
mov byte [esp + 0x7a], dl
movzx edx, byte [esp + 0x100]
xor edx, esi
xor dl, byte [esp + 0x108]
xor dl, byte [esp + 0x110]
xor dl, byte [esp + 0x104]
xor dl, byte [esp + 0x7a]
mov byte [esp + 0x12a], dl
movzx edx, byte [esp + 0x57]
xor dl, byte [esp + 0x11b]
mov byte [esp + 0x7b], dl
movzx edx, byte [esp + 0x101]
xor edx, ecx
xor dl, byte [esp + 0x109]
xor dl, byte [esp + 0x111]
xor dl, byte [esp + 0x105]
xor dl, byte [esp + 0x7b]
mov byte [esp + 0x12b], dl
movzx edx, byte [esp + 0x11e]
xor edx, esi
xor dl, byte [esp + 0x108]
xor dl, byte [esp + 0x110]
xor dl, byte [esp + 0x10a]
xor dl, byte [esp + 0x112]
xor dl, byte [esp + 0x6c]
mov byte [esp + 0x12c], dl
movzx edx, byte [esp + 0x11f]
xor edx, ecx
xor dl, byte [esp + 0x109]
xor dl, byte [esp + 0x111]
xor dl, byte [esp + 0x10b]
xor dl, byte [esp + 0x113]
xor dl, byte [esp + 0x6e]
mov byte [esp + 0x12d], dl
movzx edx, byte [esp + 0x10a]
xor dl, byte [esp + 0x114]
xor dl, byte [esp + 0x112]
xor edx, ebx
xor dl, byte [esp + 0x10c]
xor dl, byte [esp + 0x71]
mov byte [esp + 0x12e], dl
movzx edx, byte [esp + 0x10b]
xor dl, byte [esp + 0x115]
xor dl, byte [esp + 0x113]
xor dl, byte [esp + 0x119]
xor dl, byte [esp + 0x10d]
xor dl, byte [esp + 0x73]
mov byte [esp + 0x12f], dl
movzx edx, byte [esp + 0x74]
xor edx, ebp
xor dl, byte [esp + 0x10c]
mov byte [esp + 0x130], dl
movzx edx, byte [esp + 0x75]
xor edx, edi
xor dl, byte [esp + 0x10d]
mov byte [esp + 0x131], dl
movzx edx, byte [esp + 0x110]
xor edx, esi
xor dl, byte [esp + 0x104]
xor dl, byte [esp + 0x10a]
xor edx, ebx
xor dl, byte [esp + 0x10c]
xor dl, byte [esp + 0x78]
mov byte [esp + 0x132], dl
movzx edx, byte [esp + 0x111]
xor edx, ecx
xor dl, byte [esp + 0x105]
xor dl, byte [esp + 0x10b]
xor dl, byte [esp + 0x119]
xor dl, byte [esp + 0x10d]
xor dl, byte [esp + 0x79]
mov byte [esp + 0x133], dl
movzx edx, byte [esp + 0x108]
xor dl, byte [esp + 0x11e]
xor dl, byte [esp + 0x110]
xor dl, byte [esp + 0x112]
xor edx, ebx
xor dl, byte [esp + 0x10c]
xor dl, byte [esp + 0x7a]
mov byte [esp + 0x134], dl
movzx edx, byte [esp + 0x109]
xor dl, byte [esp + 0x11f]
xor dl, byte [esp + 0x111]
xor dl, byte [esp + 0x113]
xor dl, byte [esp + 0x119]
xor dl, byte [esp + 0x10d]
xor dl, byte [esp + 0x7b]
mov byte [esp + 0x135], dl
movzx edx, byte [esp + 0x76]
xor edx, esi
xor dl, byte [esp + 0x11e]
xor dl, byte [esp + 0x108]
xor dl, byte [esp + 0x110]
xor dl, byte [esp + 0x104]
xor dl, byte [esp + 0x10a]
xor dl, byte [esp + 0x112]
xor edx, ebx
xor dl, byte [esp + 0x62]
xor dl, byte [esp + 0x56]
mov byte [esp + 0x136], dl
movzx edx, byte [esp + 0x77]
xor edx, ecx
xor dl, byte [esp + 0x11f]
xor dl, byte [esp + 0x109]
xor dl, byte [esp + 0x111]
xor dl, byte [esp + 0x105]
xor dl, byte [esp + 0x10b]
xor dl, byte [esp + 0x113]
xor dl, byte [esp + 0x119]
xor dl, byte [esp + 0x63]
xor dl, byte [esp + 0x57]
mov byte [esp + 0x137], dl
movzx edx, byte [esp + 0x116]
xor dl, byte [esp + 0x114]
xor dl, byte [esp + 0x11a]
xor edx, esi
xor dl, byte [esp + 0x100]
xor dl, byte [esp + 0x108]
xor dl, byte [esp + 0x110]
xor dl, byte [esp + 0x10a]
xor dl, byte [esp + 0x112]
xor edx, ebx
xor dl, byte [esp + 0x10c]
mov byte [esp + 0x138], dl
movzx edx, byte [esp + 0x117]
xor dl, byte [esp + 0x115]
xor dl, byte [esp + 0x11b]
xor edx, ecx
xor dl, byte [esp + 0x101]
xor dl, byte [esp + 0x109]
xor dl, byte [esp + 0x111]
xor dl, byte [esp + 0x10b]
xor dl, byte [esp + 0x113]
xor dl, byte [esp + 0x119]
xor dl, byte [esp + 0x10d]
mov byte [esp + 0x139], dl
movzx edx, byte [esp + 0x10e]
xor dl, byte [esp + 0x102]
xor dl, byte [esp + 0x114]
xor dl, byte [esp + 0x116]
xor dl, byte [esp + 0x11a]
xor edx, esi
xor dl, byte [esp + 0x11e]
xor dl, byte [esp + 0x10a]
xor dl, byte [esp + 0x112]
xor edx, ebx
xor dl, byte [esp + 0x10c]
mov byte [esp + 0x13a], dl
movzx edx, byte [esp + 0x10f]
xor dl, byte [esp + 0x103]
xor dl, byte [esp + 0x115]
xor dl, byte [esp + 0x117]
xor dl, byte [esp + 0x11b]
xor edx, ecx
xor dl, byte [esp + 0x11f]
xor dl, byte [esp + 0x10b]
xor dl, byte [esp + 0x113]
xor dl, byte [esp + 0x119]
xor dl, byte [esp + 0x10d]
mov byte [esp + 0x13b], dl
movzx edx, byte [esp + 0x10c]
xor dl, byte [esp + 0x110]
xor dl, byte [esp + 0x70]
xor dl, byte [esp + 0x6d]
mov byte [esp + 0x13c], dl
movzx edx, byte [esp + 0x10d]
xor dl, byte [esp + 0x111]
xor dl, byte [esp + 0x72]
xor dl, byte [esp + 0x6f]
mov byte [esp + 0x13d], dl
movzx edx, byte [esp + 0x116]
xor dl, byte [esp + 0x10e]
xor edx, esi
xor dl, byte [esp + 0x11e]
lea esi, [esp + 0x120]
xor dl, byte [esp + 0x110]
xor dl, byte [esp + 0x112]
xor edx, ebx
mov ebx, 0x20
xor dl, byte [esp + 0x5f]
mov byte [esp + 0x13e], dl
movzx edx, byte [esp + 0x117]
xor dl, byte [esp + 0x10f]
xor edx, ecx
mov ecx, dword [esp + 0x50]
xor dl, byte [esp + 0x11f]
xor dl, byte [esp + 0x111]
xor dl, byte [esp + 0x113]
xor dl, byte [esp + 0x119]
xor dl, byte [esp + 0x61]
mov byte [esp + 0x13f], dl
mov edx, dword [ecx + 0x50]
mov dword [esp + 4], esi
mov dword [esp], eax
cmp edx, 0x20
cmovae edx, ebx
mov dword [esp + 8], edx
call sub.msvcrt.dll_memcpy
add dword [esp + 0x68], 1
add dword [esp + 0x64], 0x20
mov edi, dword [esp + 0x68]
cmp dword [esp + 0x164], edi
jne 0x46c8c0
lea ebx, [esp + 0x7c]
mov dword [esp], ebx
call sub.libgcc_s_sjlj_1.dll__Unwind_SjLj_Unregister
add esp, 0x14c
pop ebx
pop esi
pop edi
pop ebp
ret 8
xor edx, 0xff00ff00
mov ecx, dword [esp + 0x30]
xor eax, 0xff00ff
mov dword [esp + 0xcc], edx
mov edx, dword [esp + 0x3c]
xor edi, 0xff00ff
xor ebp, 0xff00ff00
xor esi, 0xff0000ff
xor ebx, 0xffff00
mov dword [esp + 0xc0], eax
xor ecx, 0xffff00ff
mov dword [esp + 0xc4], edi
xor edx, 0xff000000
mov dword [esp + 0xc8], ebp
mov dword [esp + 0xd0], esi
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xdc], edx
jmp 0x46cc26
mov dword [esp], 8
call sub.libstdc_6.dll___cxa_allocate_exception
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 8]
lea ecx, [esp + 0xbc]
mov dword [esp], ebx
mov eax, dword [eax + 4]
mov dword [esp + 0x80], 1
call eax
sub esp, 4
mov ecx, dword [esp + 0x30]
lea esi, [esp + 0xbc]
mov dword [esp + 4], 0x20
mov dword [esp], esi
mov dword [esp + 0x80], 2
call fcn.00583ef0
sub esp, 8
lea ecx, [esp + 0xbc]
call fcn.00567508
mov eax, dword [esp + 0x30]
mov dword [esp + 8], fcn.005840e0
mov dword [esp + 4], 0x62db4c
mov dword [esp + 0x80], 0xffffffff
mov dword [esp], eax
call sub.libstdc_6.dll___cxa_throw
mov eax, dword [esp + 0x80]
mov edi, dword [esp + 0x84]
test eax, eax
mov dword [esp + 0x28], edi
je 0x46dc3f
cmp eax, 1
je 0x46dc33
ud2
lea ecx, [esp + 0xbc]
call fcn.00567508
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call sub.libstdc_6.dll___cxa_free_exception
mov edx, dword [esp + 0x28]
mov dword [esp + 0x80], 0xffffffff
mov dword [esp], edx
call sub.libgcc_s_sjlj_1.dll__Unwind_SjLj_Resume
lea esi, [esi]
lea edi, [edi]
push ebp
sub esp, 0x68
lea eax, [esp + 0x60]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x1c]
mov dword [esp], eax
mov dword [esp + 0x34], 0x567468
mov dword [esp + 0x38], 0x5c059e
mov dword [esp + 0x40], 0x46ddf7
mov dword [esp + 0x44], esp
call sub.libgcc_s_sjlj_1.dll__Unwind_SjLj_Register
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 4]
test eax, eax
je 0x46dd75
cmp eax, 0x100
je 0x46dda0
mov dword [esp + 4], eax
lea eax, [esp + 0x58]
mov dword [esp], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 0x20], 0xffffffff
call fcn.0046a0e0
lea eax, [esp + 0x58]
mov dword [esp + 4], str.RC4_skip_
mov dword [esp + 8], eax
lea eax, [esp + 0x5c]
mov dword [esp], eax
mov dword [esp + 0x20], 1
call fcn.005bde60
lea eax, [esp + 0x5c]
mov dword [esp + 8], 0x5c7f09
mov dword [esp + 4], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], 2
mov dword [esp], eax
call fcn.005bdf60
mov ecx, dword [esp + 0x5c]
mov eax, 0xffffffff
lock xadd dword [ecx - 4], eax
test eax, eax
jle 0x46ddc5
mov ecx, dword [esp + 0x58]
mov eax, 0xffffffff
lock xadd dword [ecx - 4], eax
test eax, eax
jle 0x46dde0
lea eax, [esp + 0x1c]
mov dword [esp], eax
call sub.libgcc_s_sjlj_1.dll__Unwind_SjLj_Unregister
mov eax, dword [esp + 0x18]
add esp, 0x68
pop ebp
ret 4
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x57]
mov dword [esp], str.ARC4
mov dword [esp + 4], eax
mov dword [esp + 0x20], 0xffffffff
call fcn.005674b8
sub esp, 8
jmp 0x46dd5e
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x57]
mov dword [esp], str.MARK_4
mov dword [esp + 4], eax
mov dword [esp + 0x20], 0xffffffff
call fcn.005674b8
sub esp, 8
jmp 0x46dd5e
lea eax, [esp + 0x57]
sub ecx, 0xc
mov dword [esp], eax
call fcn.00567500
sub esp, 4
jmp 0x46dd48
lea eax, [esp + 0x57]
sub ecx, 0xc
mov dword [esp], eax
call fcn.00567500
sub esp, 4
jmp 0x46dd5e