Function at 0x468980
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x15c
mov eax, dword [esp + 0x174]
test eax, eax
je 0x46a07f
mov esi, ecx
shl eax, 5
mov dword [esp + 0xa4], ecx
add esi, 8
mov dword [esp + 0xc8], esi
mov esi, dword [esp + 0x170]
add eax, esi
mov dword [esp + 0xa8], esi
mov dword [esp + 0xcc], eax
mov esi, dword [esp + 0xa8]
mov edi, dword [esp + 0xa4]
xor edx, edx
xor ecx, ecx
nop
lea esi, [esi]
mov ebx, dword [edi + 0x3c]
movzx ebp, byte [esi + edx]
add ebx, edx
add edx, 1
movzx eax, byte [ebx]
add eax, ebp
add eax, ecx
mov ecx, eax
mov byte [ebx], al
shr ecx, 8
and ecx, 3
cmp edx, 0x20
jne 0x4689e0
xor eax, eax
mov dword [esp + eax + 0x110], 0
add eax, 4
cmp eax, 0x20
jb 0x468a04
mov eax, dword [esp + 0xa4]
xor ebp, ebp
mov edx, dword [eax + 0x4c]
lea eax, [esp + 0xd0]
call fcn.0042c780
mov edx, dword [esp + 0xa8]
lea eax, [esp + 0xf0]
call fcn.0042c780
mov eax, dword [esp + 0xf0]
mov edx, dword [esp + 0xf4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0xfc]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x104]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x10c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0xd4]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0xe4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0xec]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x24]
mov eax, esi
xor al, byte [esp + 0x40]
mov ecx, edi
mov byte [esp + 0x14c], al
movzx eax, byte [esp + 0x30]
shr ecx, 0x18
shr edx, 0x18
xor al, byte [esp + 0x48]
xor edx, ecx
mov ecx, dword [esp + 0x34]
shr ebx, 0x18
mov byte [esp + 0x14d], al
movzx eax, byte [esp + 0x38]
xor al, byte [esp + 0x28]
shr ecx, 0x18
mov byte [esp + 0x14e], al
xor eax, eax
mov al, dl
mov edx, dword [esp + 0x4c]
shr edx, 0x18
xor edx, ecx
mov ecx, dword [esp + 0x3c]
mov ah, dl
mov edx, dword [esp + 0x2c]
shr ecx, 0x18
movzx eax, ax
shr edx, 0x18
xor edx, ecx
mov ecx, dword [esp + 0x1c]
movzx edx, dl
shr ecx, 0x18
shl edx, 0x10
xor ecx, ebx
or eax, edx
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x24]
shl ecx, 0x18
or eax, ecx
mov ecx, edi
shr edx, 0x10
shr ecx, 0x10
mov dword [esp + 0x5c], eax
xor edx, ecx
mov dword [esp + 0x130], eax
xor eax, eax
mov ecx, dword [esp + 0x34]
mov al, dl
mov edx, dword [esp + 0x4c]
shr ecx, 0x10
shr edx, 0x10
xor edx, ecx
mov ecx, dword [esp + 0x3c]
mov ah, dl
mov edx, dword [esp + 0x2c]
shr ecx, 0x10
movzx eax, ax
shr edx, 0x10
xor edx, ecx
mov ecx, dword [esp + 0x1c]
movzx edx, dl
shl edx, 0x10
shr ecx, 0x10
shr ebx, 0x10
or eax, edx
xor ecx, ebx
mov ebx, dword [esp + 0x44]
mov edx, eax
xor eax, eax
shl ecx, 0x18
or edx, ecx
shr ebx, 8
mov ecx, edi
mov dword [esp + 0x60], edx
shr ecx, 8
mov dword [esp + 0x134], edx
mov edx, ebx
mov ebx, dword [esp + 0x4c]
xor edx, ecx
mov ecx, dword [esp + 0x34]
shr ebx, 8
mov al, dl
shr ecx, 8
mov edx, ebx
xor edx, ecx
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x2c]
mov ah, dl
shr ebx, 8
shr ecx, 8
movzx eax, ax
mov edx, ebx
mov ebx, dword [esp + 0x24]
xor edx, ecx
mov ecx, dword [esp + 0x1c]
movzx edx, dl
shr ebx, 8
shl edx, 0x10
shr ecx, 8
or eax, edx
xor ecx, ebx
mov edx, edi
shl ecx, 0x18
mov ebx, eax
xor eax, eax
or ebx, ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x64], ebx
xor edx, ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x138], ebx
mov al, dl
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x24]
xor edx, ecx
mov ecx, dword [esp + 0x3c]
mov ah, dl
mov edx, dword [esp + 0x2c]
xor ecx, edx
movzx edx, ax
mov eax, dword [esp + 0x1c]
movzx ecx, cl
shl ecx, 0x10
xor eax, ebx
mov ebx, dword [esp + 0x30]
or edx, ecx
shl eax, 0x18
mov ecx, edx
mov edx, dword [esp + 0x38]
or ecx, eax
xor eax, eax
mov dword [esp + 0x68], ecx
mov dword [esp + 0x13c], ecx
mov ecx, esi
mov esi, dword [esp + 0x40]
shrd ecx, edi, 0x18
mov edi, dword [esp + 0x44]
shrd esi, edi, 0x18
mov edi, dword [esp + 0x4c]
xor ecx, esi
mov esi, dword [esp + 0x34]
mov al, cl
shrd ebx, esi, 0x18
mov esi, dword [esp + 0x48]
mov ecx, ebx
mov ebx, dword [esp + 0x1c]
shrd esi, edi, 0x18
mov edi, dword [esp + 0x2c]
xor ecx, esi
mov esi, dword [esp + 0x28]
mov ah, cl
mov ecx, dword [esp + 0x3c]
shrd esi, edi, 0x18
movzx eax, ax
shrd edx, ecx, 0x18
mov ecx, edx
xor ecx, esi
mov esi, dword [esp + 0x20]
movzx ecx, cl
mov edi, ecx
mov ecx, dword [esp + 0x18]
shl edi, 0x10
mov edx, edi
mov edi, dword [esp + 0x24]
shrd ecx, ebx, 0x18
mov ebx, dword [esp + 0x54]
or eax, edx
shrd esi, edi, 0x18
mov edi, eax
xor eax, eax
xor ecx, esi
shl ecx, 0x18
or edi, ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x6c], edi
mov dword [esp + 0x140], edi
mov esi, dword [esp + 0x40]
shrd ecx, ebx, 0x10
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x38]
shrd esi, edi, 0x10
mov edi, dword [esp + 0x4c]
xor ecx, esi
mov esi, dword [esp + 0x48]
mov al, cl
mov ecx, dword [esp + 0x34]
shrd esi, edi, 0x10
mov edi, dword [esp + 0x2c]
shrd edx, ecx, 0x10
mov ecx, edx
xor ecx, esi
mov esi, dword [esp + 0x3c]
mov ah, cl
shrd ebx, esi, 0x10
mov esi, dword [esp + 0x28]
movzx eax, ax
mov ecx, ebx
mov ebx, dword [esp + 0x18]
shrd esi, edi, 0x10
mov edi, dword [esp + 0x24]
xor ecx, esi
mov esi, dword [esp + 0x1c]
movzx ecx, cl
shrd ebx, esi, 0x10
mov esi, dword [esp + 0x20]
mov edx, ecx
shl edx, 0x10
mov ecx, ebx
mov ebx, dword [esp + 0x54]
shrd esi, edi, 0x10
or eax, edx
mov edi, dword [esp + 0x44]
xor ecx, esi
mov edx, eax
mov esi, dword [esp + 0x40]
shl ecx, 0x18
or edx, ecx
mov ecx, dword [esp + 0x50]
shrd esi, edi, 8
xor eax, eax
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x144], edx
shrd ecx, ebx, 8
mov ebx, dword [esp + 0x34]
xor ecx, esi
mov esi, dword [esp + 0x48]
mov al, cl
mov ecx, dword [esp + 0x30]
shrd esi, edi, 8
mov edi, dword [esp + 0x2c]
shrd ecx, ebx, 8
mov ebx, dword [esp + 0x3c]
xor ecx, esi
mov esi, dword [esp + 0x28]
mov ah, cl
mov ecx, dword [esp + 0x38]
shrd esi, edi, 8
mov edi, dword [esp + 0x24]
movzx eax, ax
shrd ecx, ebx, 8
mov ebx, dword [esp + 0x1c]
xor ecx, esi
movzx ecx, cl
mov esi, ecx
mov ecx, dword [esp + 0x18]
shl esi, 0x10
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x20]
shrd ecx, ebx, 8
or eax, dword [esp + 0x30]
shrd esi, edi, 8
mov edi, dword [esp + 0x6c]
xor ecx, esi
mov esi, dword [esp + 0xa4]
shl ecx, 0x18
or ecx, eax
movzx eax, byte [esp + 0x18]
xor al, byte [esp + 0x20]
mov ebx, dword [esi + 0x1c]
mov byte [esp + 0x14f], al
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x148], ecx
mov dword [ebx + 0x14], edx
lea edx, [esp + 0x110]
mov dword [ebx], eax
mov eax, dword [esp + 0x60]
mov dword [ebx + 0x18], ecx
mov ecx, dword [esp + 0xc8]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x64]
mov dword [ebx + 0x10], edi
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x68]
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x14c]
mov dword [ebx + 0x1c], eax
lea eax, [ebp*8]
add edx, eax
mov dword [esp + 4], edx
add eax, dword [esi + 0x4c]
mov dword [esp], eax
call fcn.0042c7f0
sub esp, 8
cmp ebp, 3
je 0x4690d7
mov esi, dword [esp + 0xd8]
mov edi, dword [esp + 0xdc]
mov edx, dword [esp + 0xd0]
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xe0]
mov ebx, dword [esp + 0xe4]
mov dword [esp + 0x50], esi
xor edx, esi
xor eax, edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x34], ebx
mov dword [esp + 0xd8], ecx
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0xdc], ebx
mov ebx, dword [esp + 0xec]
mov dword [esp + 0xd0], esi
mov dword [esp + 0xd4], edi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], edx
cmp ebp, 1
jne 0x469027
mov edx, esi
mov eax, edi
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
xor edx, 0xff00ff
xor eax, 0xff00ff
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov dword [esp + 0xd0], eax
mov eax, edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0xd4], edx
mov edx, esi
xor eax, 0xff00ff00
mov esi, dword [esp + 0x18]
xor edx, 0xff00ff00
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
mov dword [esp + 0xdc], edx
mov edx, ecx
mov dword [esp + 0xd8], eax
mov eax, ebx
xor edx, 0xff0000ff
xor eax, 0xffff00
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xe0], eax
mov eax, edi
mov dword [esp + 0xe4], edx
mov edx, esi
xor eax, 0xff000000
xor edx, 0xffff00ff
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov dword [esp + 0xec], edx
mov dword [esp + 0xe8], eax
mov edx, dword [esp + 0xf8]
mov esi, dword [esp + 0xf0]
add ebp, 1
mov eax, dword [esp + 0xfc]
mov edi, dword [esp + 0x104]
xor esi, edx
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0xf4]
mov dword [esp + 0x44], edi
xor esi, eax
xor eax, edi
mov dword [esp + 0xf4], edi
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x100]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x108]
xor edx, esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x10c]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xfc], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x104], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0xf0], esi
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], edx
jmp 0x468af2
movzx edx, byte [esp + 0x12e]
movzx ecx, byte [esp + 0x128]
movzx ebx, byte [esp + 0x110]
xor bl, byte [esp + 0x112]
mov ebp, ebx
xor ecx, edx
xor bl, byte [esp + 0x114]
xor cl, byte [esp + 0x116]
xor ecx, ebx
movzx eax, byte [esp + 0x12f]
mov byte [esp + 0x40], bl
mov byte [esp + 0x138], cl
movzx ecx, byte [esp + 0x111]
xor cl, byte [esp + 0x113]
mov esi, dword [esp + 0x128]
mov edi, ecx
xor cl, byte [esp + 0x115]
mov ebx, ecx
movzx ecx, byte [esp + 0x129]
mov dword [esp + 0x130], esi
mov byte [esp + 0x48], bl
mov esi, dword [esp + 0x12c]
xor ecx, eax
xor cl, byte [esp + 0x117]
xor ecx, ebx
movzx ebx, byte [esp + 0x128]
xor bl, byte [esp + 0x12a]
mov dword [esp + 0x134], esi
mov byte [esp + 0x139], cl
movzx ecx, byte [esp + 0x110]
xor ecx, edx
xor cl, byte [esp + 0x118]
xor ecx, ebx
mov byte [esp + 0x13a], cl
movzx ecx, byte [esp + 0x129]
xor cl, byte [esp + 0x12b]
mov byte [esp + 0x18], cl
movzx ecx, byte [esp + 0x111]
xor ecx, eax
xor cl, byte [esp + 0x119]
xor cl, byte [esp + 0x18]
mov byte [esp + 0x13b], cl
movzx ecx, byte [esp + 0x110]
xor cl, byte [esp + 0x114]
mov byte [esp + 0x50], bl
mov esi, ecx
movzx ecx, byte [esp + 0x116]
xor bl, byte [esp + 0x12c]
mov byte [esp + 0x28], bl
xor ecx, edx
xor cl, byte [esp + 0x11a]
xor ecx, esi
xor ecx, ebx
mov byte [esp + 0x13c], cl
movzx ecx, byte [esp + 0x111]
xor cl, byte [esp + 0x115]
mov ebx, ecx
movzx ecx, byte [esp + 0x18]
xor cl, byte [esp + 0x12d]
mov byte [esp + 0x20], cl
movzx ecx, byte [esp + 0x117]
xor ecx, eax
xor cl, byte [esp + 0x11b]
xor ecx, ebx
xor cl, byte [esp + 0x20]
mov byte [esp + 0x13d], cl
movzx ecx, byte [esp + 0x118]
xor cl, byte [esp + 0x11c]
xor ecx, esi
movzx esi, byte [esp + 0x11d]
xor cl, byte [esp + 0x28]
mov byte [esp + 0x13e], cl
mov ecx, esi
xor cl, byte [esp + 0x119]
xor ecx, ebx
xor cl, byte [esp + 0x20]
mov byte [esp + 0x13f], cl
movzx ecx, byte [esp + 0x12a]
xor cl, byte [esp + 0x12c]
xor ecx, edx
mov ebx, ecx
movzx ecx, byte [esp + 0x112]
xor cl, byte [esp + 0x116]
xor cl, byte [esp + 0x11a]
xor cl, byte [esp + 0x11e]
mov byte [esp + 0x5c], bl
xor ecx, ebx
mov byte [esp + 0x140], cl
movzx ecx, byte [esp + 0x12b]
xor cl, byte [esp + 0x12d]
xor ecx, eax
mov ebx, ecx
movzx ecx, byte [esp + 0x113]
xor cl, byte [esp + 0x117]
xor cl, byte [esp + 0x11b]
xor cl, byte [esp + 0x11f]
xor ecx, ebx
mov byte [esp + 0x141], cl
movzx ecx, byte [esp + 0x128]
xor cl, byte [esp + 0x12c]
mov byte [esp + 0x30], cl
movzx ecx, byte [esp + 0x116]
xor cl, byte [esp + 0x118]
xor cl, byte [esp + 0x11c]
xor cl, byte [esp + 0x120]
xor ecx, ebp
xor cl, byte [esp + 0x30]
mov byte [esp + 0x142], cl
movzx ecx, byte [esp + 0x129]
xor cl, byte [esp + 0x12d]
mov byte [esp + 0x38], cl
movzx ecx, byte [esp + 0x117]
xor cl, byte [esp + 0x119]
xor ecx, esi
xor cl, byte [esp + 0x121]
xor ecx, edi
xor cl, byte [esp + 0x38]
mov byte [esp + 0x143], cl
movzx ecx, byte [esp + 0x12a]
xor ecx, edx
xor cl, byte [esp + 0x112]
xor cl, byte [esp + 0x114]
xor cl, byte [esp + 0x118]
xor cl, byte [esp + 0x11a]
xor cl, byte [esp + 0x11e]
xor cl, byte [esp + 0x122]
mov byte [esp + 0x144], cl
movzx ecx, byte [esp + 0x12b]
xor dl, byte [esp + 0x11a]
xor dl, byte [esp + 0x11c]
xor dl, byte [esp + 0x120]
xor dl, byte [esp + 0x124]
xor ecx, eax
xor ebp, edx
movzx edx, byte [esp + 0x30]
xor al, byte [esp + 0x11b]
xor eax, esi
xor al, byte [esp + 0x121]
xor cl, byte [esp + 0x113]
xor ebp, edx
xor cl, byte [esp + 0x115]
xor cl, byte [esp + 0x119]
mov edx, ebp
movzx ebp, byte [esp + 0x38]
xor cl, byte [esp + 0x11b]
mov byte [esp + 0x146], dl
movzx edx, byte [esp + 0x125]
xor cl, byte [esp + 0x11f]
xor cl, byte [esp + 0x123]
xor eax, edx
mov byte [esp + 0x145], cl
xor edi, eax
xor edi, ebp
mov eax, edi
mov byte [esp + 0x147], al
movzx eax, byte [esp + 0x110]
xor al, byte [esp + 0x116]
xor al, byte [esp + 0x11c]
xor al, byte [esp + 0x11e]
xor al, byte [esp + 0x122]
xor al, byte [esp + 0x126]
xor al, byte [esp + 0x50]
mov byte [esp + 0x148], al
movzx eax, byte [esp + 0x111]
xor al, byte [esp + 0x117]
xor eax, esi
xor al, byte [esp + 0x11f]
xor al, byte [esp + 0x123]
xor al, byte [esp + 0x127]
xor al, byte [esp + 0x18]
mov byte [esp + 0x149], al
movzx eax, byte [esp + 0x112]
xor al, byte [esp + 0x118]
xor al, byte [esp + 0x11e]
xor al, byte [esp + 0x120]
xor al, byte [esp + 0x124]
xor al, byte [esp + 0x28]
movzx ecx, byte [esp + 0x114]
mov byte [esp + 0x14a], al
xor cl, byte [esp + 0x11a]
movzx eax, byte [esp + 0x113]
xor cl, byte [esp + 0x120]
xor al, byte [esp + 0x119]
xor cl, byte [esp + 0x122]
xor al, byte [esp + 0x11f]
xor cl, byte [esp + 0x126]
xor al, byte [esp + 0x121]
xor cl, byte [esp + 0x5c]
xor eax, edx
mov byte [esp + 0x14c], cl
xor al, byte [esp + 0x20]
movzx ecx, byte [esp + 0x123]
mov byte [esp + 0x14b], al
movzx eax, byte [esp + 0x115]
xor al, byte [esp + 0x11b]
xor al, byte [esp + 0x121]
xor ecx, eax
xor cl, byte [esp + 0x127]
movzx eax, byte [esp + 0x12c]
xor ecx, ebx
xor al, byte [esp + 0x11c]
xor al, byte [esp + 0x122]
mov byte [esp + 0x14d], cl
xor al, byte [esp + 0x124]
xor al, byte [esp + 0x40]
mov ebx, dword [esp + 0x128]
mov byte [esp + 0x14e], al
mov eax, esi
mov esi, dword [esp + 0xa8]
xor al, byte [esp + 0x12d]
xor al, byte [esp + 0x123]
xor eax, edx
xor al, byte [esp + 0x48]
xor ebx, dword [esi]
mov byte [esp + 0x14f], al
mov ebp, dword [esp + 0x12c]
lea edx, [esp + 0x112]
xor ebp, dword [esi + 4]
mov eax, dword [esp + 0x138]
mov dword [esp + 0x110], ebx
xor eax, dword [esi + 8]
mov edi, dword [esp + 0x148]
mov dword [esp + 0x114], ebp
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0x13c]
xor eax, dword [esi + 0xc]
xor edi, dword [esi + 0x18]
mov dword [esp + 0x11c], eax
mov eax, dword [esp + 0x140]
xor eax, dword [esi + 0x10]
mov dword [esp + 0x128], edi
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x144]
xor eax, dword [esi + 0x14]
mov dword [esp + 0x124], eax
mov eax, esi
mov esi, dword [esp + 0x14c]
xor esi, dword [eax + 0x1c]
mov dword [esp + 8], 0x1e
mov dword [esp + 0x12c], esi
mov dword [esp + 4], edx
lea edx, [esp + 0x110]
mov dword [esp], edx
call sub.msvcrt.dll_memmove
mov edx, ebx
mov ecx, dword [esp + 0x120]
shr edx, 0x10
mov eax, edx
mov edx, ebp
xor eax, ebx
shr edx, 0x10
xor eax, ebp
xor eax, edx
mov edx, esi
shr esi, 0x18
xor eax, edi
shr edx, 0x10
xor eax, edx
mov edx, dword [esp + 0xa4]
mov byte [esp + 0x12e], al
movzx eax, bh
shr ebx, 0x18
xor ebx, eax
mov eax, ebp
shr ebp, 0x18
movzx eax, ah
xor eax, ebx
mov ebx, edi
xor eax, ebp
movzx edi, bh
mov ebp, dword [esp + 0x110]
xor eax, edi
xor eax, esi
mov esi, dword [esp + 0x118]
mov byte [esp + 0x12f], al
mov eax, dword [edx + 0x4c]
mov edx, dword [esp + 0x124]
mov ebx, eax
mov edi, dword [eax]
xor esi, dword [eax + 8]
xor edx, dword [ebx + 0x14]
xor ecx, dword [ebx + 0x10]
mov dword [esp + 0x30], esi
xor ebp, edi
mov dword [esp + 0x5c], edx
mov edi, dword [eax + 4]
mov edx, ebx
mov eax, dword [esp + 0x11c]
xor eax, dword [ebx + 0xc]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x128]
mov eax, dword [ebx + 0x18]
mov ebx, dword [esp + 0x12c]
mov dword [esp + 0xc4], edx
xor ebx, dword [edx + 0x1c]
xor edi, dword [esp + 0x114]
mov dword [esp + 0x7c], ebp
shr ebp, 0x10
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x20]
xor eax, ecx
mov edx, edi
mov ecx, dword [esp + 0x5c]
shr edx, 0x10
mov dword [esp + 0x80], edi
mov edi, eax
shr ebx, 0x10
shr edi, 0x10
mov dword [esp + 0x60], edx
xor edx, ebp
mov esi, ebx
mov ebx, ecx
mov dword [esp + 0x28], eax
mov eax, edi
shr ebx, 0x10
xor ecx, esi
mov dword [esp + 0x98], esi
mov edi, ecx
mov esi, ebx
mov dword [esp + 0x74], eax
xor edi, esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0x84], ebx
mov ebx, edi
xor bl, byte [esp + 0x74]
mov edi, dword [esp + 0x7c]
mov byte [esp + 0xb0], dl
mov ecx, esi
mov byte [esp + 0xb4], bl
xor ebx, esi
shr ecx, 0x10
shr edi, 0x18
mov byte [esp + 0xb7], bl
mov dword [esp + 0x40], ecx
mov ecx, ebx
xor dl, byte [esp + 0x40]
xor edx, ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x90], edi
mov edi, dword [esp + 0x20]
mov byte [esp + 0x130], dl
shr ecx, 0x18
shr edi, 0x18
mov dword [esp + 0xa0], ecx
xor cl, byte [esp + 0x90]
mov ebx, ecx
mov dword [esp + 0x94], edi
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x28]
mov byte [esp + 0xb1], bl
movzx esi, ch
mov edx, ecx
shr edi, 0x18
mov eax, esi
shr edx, 0x18
mov ecx, edi
mov edi, esi
movzx esi, byte [esp + 0x94]
mov byte [esp + 0x9c], al
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x18]
xor edi, esi
mov esi, edx
mov dword [esp + 0x88], edx
xor edi, esi
movzx esi, ch
mov eax, esi
mov ecx, esi
mov esi, dword [esp + 0x18]
mov edx, edi
xor dl, byte [esp + 0x78]
mov edi, esi
mov byte [esp + 0xb2], dl
xor edx, ecx
shr edi, 0x18
mov ecx, edx
mov edx, ebx
mov dword [esp + 0x48], edi
xor dl, byte [esp + 0x48]
xor edx, ecx
mov byte [esp + 0xb3], cl
mov byte [esp + 0x131], dl
mov edi, dword [esp + 0x7c]
movzx ebx, byte [esp + 0x30]
mov dword [esp + 0xc0], ebp
mov edx, edi
xor edx, ebp
mov ecx, edx
xor dl, byte [esp + 0x60]
xor ebx, edx
mov byte [esp + 0xb6], dl
movzx edx, byte [esp + 0x84]
xor dl, byte [esp + 0x18]
xor dl, byte [esp + 0x38]
mov byte [esp + 0xb8], bl
xor edx, ebx
mov ebx, dword [esp + 0x30]
mov byte [esp + 0x132], dl
mov edx, edi
mov edi, dword [esp + 0x30]
movzx esi, dh
mov edx, esi
movzx esi, bh
mov byte [esp + 0x9d], dl
xor dl, byte [esp + 0x90]
mov ebx, esi
mov byte [esp + 0x9f], dl
xor dl, byte [esp + 0xa0]
mov byte [esp + 0xb9], dl
xor edx, ebx
mov byte [esp + 0x73], bl
mov ebx, dword [esp + 0x38]
mov byte [esp + 0xac], dl
movzx esi, bh
movzx ebx, byte [esp + 0x88]
xor ebx, eax
mov edx, ebx
mov ebx, esi
mov esi, edi
xor ebp, esi
xor edx, ebx
mov byte [esp + 0x64], bl
mov esi, dword [esp + 0x80]
mov ebx, ebp
mov ebp, edi
mov edi, dword [esp + 0x38]
xor dl, byte [esp + 0xac]
shr ebp, 0x10
xor ebx, esi
mov byte [esp + 0x133], dl
mov dword [esp + 0x68], ebp
mov ebp, edi
shr ebp, 0x10
mov byte [esp + 0xba], bl
xor bl, byte [esp + 0x68]
mov edx, ebp
xor dl, byte [esp + 0x40]
xor dl, byte [esp + 0x28]
mov dword [esp + 0x6c], ebp
xor edx, ebx
mov byte [esp + 0xbb], bl
movzx ebp, byte [esp + 0x73]
mov byte [esp + 0x134], dl
mov edx, esi
movzx esi, dh
movzx edx, byte [esp + 0x90]
mov byte [esp + 0xb5], cl
mov ebx, esi
xor edx, ebp
mov ebp, dword [esp + 0x30]
mov byte [esp + 0x9e], bl
xor edx, ebx
shr ebp, 0x18
mov byte [esp + 0xbc], dl
mov ebx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x50], ebp
mov ebp, edi
xor bl, byte [esp + 0x50]
shr ebp, 0x18
mov byte [esp + 0xbd], bl
mov edi, ebp
movzx ebp, dh
mov dword [esp + 0x8c], edi
mov edx, edi
mov edi, dword [esp + 0x48]
xor edx, edi
mov esi, edi
xor edx, ebp
xor edx, ebx
mov ebx, dword [esp + 0x40]
mov byte [esp + 0x135], dl
movzx edx, byte [esp + 0x74]
xor dl, byte [esp + 0x5c]
mov byte [esp + 0xaf], dl
xor edx, ebx
xor dl, byte [esp + 0x68]
xor dl, byte [esp + 0x28]
xor dl, byte [esp + 0x20]
xor edx, ecx
movzx ecx, byte [esp + 0x9c]
xor cl, byte [esp + 0x78]
mov edi, ecx
mov byte [esp + 0x136], dl
mov edx, dword [esp + 0x20]
xor esi, edi
mov byte [esp + 0xae], cl
mov edi, esi
movzx esi, byte [esp + 0x50]
movzx edx, dh
xor edi, esi
movzx esi, byte [esp + 0x9f]
xor edi, ebp
xor edi, edx
xor edi, esi
mov ecx, edi
mov byte [esp + 0x137], cl
movzx ecx, byte [esp + 0x60]
xor cl, byte [esp + 0x98]
mov byte [esp + 0xbe], cl
xor cl, byte [esp + 0x84]
movzx esi, byte [esp + 0x18]
movzx edi, byte [esp + 0x74]
mov byte [esp + 0xad], cl
mov ecx, ebx
movzx ebx, byte [esp + 0x20]
mov byte [esp + 0x60], al
xor edi, esi
mov esi, dword [esp + 0x7c]
xor edi, ecx
mov ecx, esi
xor edi, ecx
movzx ecx, byte [esp + 0x28]
xor edi, ecx
movzx ecx, byte [esp + 0xad]
xor edi, ebx
movzx ebx, byte [esp + 0x78]
xor edi, ecx
mov ecx, edi
mov edi, eax
movzx eax, byte [esp + 0xbe]
xor ebx, edi
mov byte [esp + 0x138], cl
movzx ecx, byte [esp + 0xa0]
mov edi, ebx
movzx ebx, byte [esp + 0x48]
xor cl, byte [esp + 0x94]
mov byte [esp + 0xa0], cl
xor cl, byte [esp + 0x88]
xor edi, ebx
movzx ebx, byte [esp + 0x9d]
mov byte [esp + 0xbf], cl
xor edi, ebx
xor edi, ebp
xor edi, edx
xor edi, ecx
mov ecx, edi
mov edi, esi
movzx esi, byte [esp + 0x18]
mov byte [esp + 0x139], cl
movzx ecx, byte [esp + 0x74]
xor edi, esi
movzx esi, byte [esp + 0x30]
xor ecx, eax
xor edi, esi
mov esi, dword [esp + 0x38]
mov ebx, ecx
mov byte [esp + 0xbe], bl
mov ecx, esi
xor edi, ecx
movzx ecx, byte [esp + 0x80]
xor edi, ecx
mov ecx, ebx
movzx ebx, byte [esp + 0x78]
xor edi, ecx
mov ecx, edi
movzx edi, byte [esp + 0x60]
mov byte [esp + 0x13a], cl
movzx ecx, byte [esp + 0xa0]
xor ebx, ecx
mov byte [esp + 0xa0], bl
movzx ebx, byte [esp + 0x9d]
xor edi, ebx
movzx ebx, byte [esp + 0x73]
xor edi, ebx
movzx ebx, byte [esp + 0x64]
xor edi, ebx
movzx ebx, byte [esp + 0x9e]
xor edi, ebx
movzx ebx, byte [esp + 0xa0]
xor edi, ebx
mov ebx, edi
movzx edi, byte [esp + 0x40]
mov byte [esp + 0x13b], bl
movzx ebx, byte [esp + 0x18]
xor edi, ebx
movzx ebx, byte [esp + 0x30]
xor edi, ebx
mov ebx, esi
mov esi, dword [esp + 0x68]
xor edi, ebx
mov ebx, esi
xor edi, ebx
movzx ebx, byte [esp + 0x6c]
xor edi, ebx
movzx ebx, byte [esp + 0xb0]
xor edi, ebx
mov ebx, edi
movzx edi, byte [esp + 0x60]
mov byte [esp + 0x13c], bl
movzx ebx, byte [esp + 0x48]
xor ebx, edi
mov edi, ebx
movzx ebx, byte [esp + 0x73]
xor edi, ebx
movzx ebx, byte [esp + 0x64]
xor edi, ebx
movzx ebx, byte [esp + 0x50]
xor edi, ebx
movzx ebx, byte [esp + 0x8c]
xor edi, ebx
movzx ebx, byte [esp + 0xb1]
xor edi, ebx
mov ebx, edi
movzx edi, byte [esp + 0x5c]
mov byte [esp + 0x13d], bl
mov ebx, esi
xor edi, ebx
movzx ebx, byte [esp + 0x6c]
xor edi, ebx
movzx ebx, byte [esp + 0x28]
xor edi, ebx
movzx ebx, byte [esp + 0x20]
xor edi, ebx
movzx ebx, byte [esp + 0xb8]
xor edi, ebx
mov ebx, edi
movzx edi, byte [esp + 0x9c]
mov byte [esp + 0x13e], bl
movzx ebx, byte [esp + 0x50]
xor edi, ebx
movzx ebx, byte [esp + 0x8c]
xor edi, ebx
movzx ebx, byte [esp + 0xac]
xor edi, ebp
xor edi, edx
xor edi, ebx
mov ebx, edi
movzx edi, byte [esp + 0xb4]
mov byte [esp + 0x13f], bl
movzx ebx, byte [esp + 0xbb]
xor edi, ebx
movzx ebx, byte [esp + 0x20]
xor edi, ebx
mov ebx, edi
movzx edi, byte [esp + 0xb2]
mov byte [esp + 0x140], bl
movzx ebx, byte [esp + 0xbd]
xor edi, ebx
xor edi, edx
mov ebx, edi
movzx edi, byte [esp + 0x38]
mov byte [esp + 0x141], bl
movzx ebx, byte [esp + 0x18]
xor edi, ebx
movzx ebx, byte [esp + 0x80]
xor edi, ebx
mov ebx, esi
movzx esi, byte [esp + 0x28]
xor edi, ebx
movzx ebx, byte [esp + 0xad]
xor edi, esi
movzx esi, byte [esp + 0x20]
xor edi, esi
movzx esi, byte [esp + 0x64]
xor edi, ebx
mov ebx, edi
movzx edi, byte [esp + 0x60]
mov byte [esp + 0x142], bl
mov ebx, esi
xor edi, ebx
movzx ebx, byte [esp + 0x9e]
xor edi, ebx
movzx ebx, byte [esp + 0x50]
xor edi, ebx
movzx ebx, byte [esp + 0xbf]
xor edi, ebp
xor edi, edx
xor edi, ebx
mov ebx, edi
movzx edi, byte [esp + 0x40]
mov byte [esp + 0x143], bl
movzx ebx, byte [esp + 0x30]
xor edi, ebx
movzx ebx, byte [esp + 0x38]
xor edi, ebx
movzx ebx, byte [esp + 0x6c]
xor edi, ebx
movzx ebx, byte [esp + 0x28]
xor edi, ebx
movzx ebx, byte [esp + 0x20]
xor edi, ebx
movzx ebx, byte [esp + 0xbe]
xor edi, ebx
mov ebx, edi
movzx edi, byte [esp + 0x73]
mov byte [esp + 0x144], bl
movzx ebx, byte [esp + 0x48]
xor ebx, edi
mov edi, ebx
mov ebx, esi
mov esi, dword [esp + 0x8c]
xor edi, ebx
mov ebx, esi
xor edi, ebx
movzx ebx, byte [esp + 0xa0]
xor edi, ebp
xor edi, edx
xor edi, ebx
mov ebx, edi
mov byte [esp + 0x145], bl
movzx edi, byte [esp + 0xaf]
movzx ebx, byte [esp + 0x18]
xor edi, ebx
movzx ebx, byte [esp + 0x40]
xor edi, ebx
movzx ebx, byte [esp + 0x30]
xor edi, ebx
movzx ebx, byte [esp + 0x38]
xor edi, ebx
movzx ebx, byte [esp + 0x80]
xor edi, ebx
movzx ebx, byte [esp + 0x68]
xor edi, ebx
movzx ebx, byte [esp + 0x6c]
xor edi, ebx
movzx ebx, byte [esp + 0x28]
xor edi, ebx
movzx ebx, byte [esp + 0xb5]
xor edi, ebx
mov ebx, eax
mov eax, dword [esp + 0x18]
xor edi, ebx
mov ebx, edi
movzx edi, byte [esp + 0x60]
mov byte [esp + 0x146], bl
movzx ebx, byte [esp + 0xae]
xor ebx, edi
mov edi, ebx
movzx ebx, byte [esp + 0x48]
xor edi, ebx
movzx ebx, byte [esp + 0x73]
xor edi, ebx
movzx ebx, byte [esp + 0x64]
xor edi, ebx
movzx ebx, byte [esp + 0x9e]
xor edi, ebx
movzx ebx, byte [esp + 0x50]
xor edi, ebx
mov ebx, esi
xor edi, esi
movzx esi, byte [esp + 0x9f]
xor edi, ebp
xor edi, esi
mov esi, ecx
xor edi, esi
movzx esi, byte [esp + 0x84]
mov ecx, edi
movzx edi, byte [esp + 0x5c]
mov byte [esp + 0x147], cl
xor esi, edi
mov edi, esi
movzx esi, byte [esp + 0x74]
xor edi, esi
mov esi, eax
xor edi, esi
movzx esi, byte [esp + 0x7c]
xor edi, esi
movzx esi, byte [esp + 0x30]
xor esi, edi
mov edi, dword [esp + 0x38]
mov ecx, edi
xor esi, ecx
movzx ecx, byte [esp + 0x68]
xor esi, ecx
movzx ecx, byte [esp + 0x6c]
xor esi, ecx
movzx ecx, byte [esp + 0x28]
xor esi, ecx
movzx ecx, byte [esp + 0x20]
xor esi, ecx
mov ecx, esi
mov byte [esp + 0x148], cl
movzx esi, byte [esp + 0x9c]
movzx ecx, byte [esp + 0x88]
xor esi, ecx
movzx ecx, byte [esp + 0x78]
xor esi, ecx
movzx ecx, byte [esp + 0x60]
xor esi, ecx
movzx ecx, byte [esp + 0x9d]
xor esi, ecx
movzx ecx, byte [esp + 0x73]
xor esi, ecx
movzx ecx, byte [esp + 0x64]
xor esi, ecx
movzx ecx, byte [esp + 0x50]
xor esi, ecx
mov ecx, ebx
xor esi, ecx
xor esi, ebp
xor esi, edx
mov ecx, esi
movzx esi, byte [esp + 0xc0]
mov byte [esp + 0x149], cl
movzx ecx, byte [esp + 0x98]
xor esi, ecx
movzx ecx, byte [esp + 0x5c]
xor esi, ecx
movzx ecx, byte [esp + 0x84]
xor esi, ecx
movzx ecx, byte [esp + 0x74]
xor esi, ecx
mov ecx, eax
movzx eax, byte [esp + 0x20]
xor esi, ecx
movzx ecx, byte [esp + 0x40]
xor esi, ecx
movzx ecx, byte [esp + 0x68]
xor esi, ecx
movzx ecx, byte [esp + 0x6c]
xor esi, ecx
movzx ecx, byte [esp + 0x28]
xor esi, ecx
xor esi, eax
xor eax, edi
xor al, byte [esp + 0xb6]
xor al, byte [esp + 0xb7]
mov ecx, esi
movzx esi, byte [esp + 0x90]
mov byte [esp + 0x14c], al
mov byte [esp + 0x14a], cl
movzx ecx, byte [esp + 0x94]
xor esi, ecx
movzx ecx, byte [esp + 0x9c]
xor esi, ecx
movzx ecx, byte [esp + 0x88]
xor esi, ecx
movzx ecx, byte [esp + 0x78]
xor esi, ecx
movzx ecx, byte [esp + 0x60]
xor esi, ecx
movzx ecx, byte [esp + 0x48]
xor esi, ecx
movzx ecx, byte [esp + 0x50]
xor esi, ecx
mov ecx, ebx
xor esi, ecx
xor esi, ebp
xor esi, edx
mov ecx, esi
mov byte [esp + 0x14b], cl
movzx ebx, byte [esp + 0x64]
movzx eax, byte [esp + 0x84]
xor al, byte [esp + 0x98]
xor al, byte [esp + 0x18]
xor al, byte [esp + 0x40]
xor edx, ebx
xor eax, edi
xor al, byte [esp + 0x6c]
xor al, byte [esp + 0x28]
xor al, byte [esp + 0xba]
mov edi, dword [esp + 0xa4]
mov byte [esp + 0x14e], al
movzx eax, byte [esp + 0x88]
xor al, byte [esp + 0x94]
xor al, byte [esp + 0x60]
xor al, byte [esp + 0x48]
xor dl, byte [esp + 0xb9]
xor eax, ebx
xor al, byte [esp + 0x8c]
xor dl, byte [esp + 0xb3]
movzx ebx, byte [esp + 0xbc]
xor ebp, eax
mov byte [esp + 0x14d], dl
xor ebp, ebx
mov eax, ebp
mov byte [esp + 0x14f], al
mov eax, dword [edi + 0x50]
cmp eax, 0x1f
jbe 0x46a08c
mov esi, dword [esp + 0xc4]
mov eax, dword [esp + 0x130]
add dword [esp + 0xa8], 0x20
mov dword [esi], eax
mov eax, dword [esp + 0x134]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x138]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x13c]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x140]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x144]
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x148]
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x14c]
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0xa8]
cmp dword [esp + 0xcc], eax
jne 0x4689c6
add esp, 0x15c
pop ebx
pop esi
pop edi
pop ebp
ret 8
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc4]
lea edx, [esp + 0x130]
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
add dword [esp + 0xa8], 0x20
mov eax, dword [esp + 0xa8]
cmp dword [esp + 0xcc], eax
jne 0x4689c6
jmp 0x46a07f