Function at 0x421bf0
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x5343fd
push eax
mov dword fs:[0], esp
sub esp, 0x10
push esi
push edi
mov edi, ecx
mov ecx, 0x570b5c
call fcn.005040ed
mov eax, dword [ebp + 8]
cmp eax, 0x465
ja 0x421ced
je 0x421cd2
cmp eax, 0x113
jne case.0x421cfb.1128
cmp dword [ebp + 0xc], 0x514
jne case.0x421cfb.1128
mov ecx, dword [edi + 0x7c4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x58]
call eax
mov ecx, dword [edi + 0x7a0]
movups xmm0, xmmword [eax]
lea eax, [ecx + 0x53]
movups xmmword [ebp - 0x1c], xmm0
mov dword [ebp - 0x1c], ecx
cmp ecx, 0x2f
jge 0x421c73
mov dword [ebp - 0x1c], 0x2f
jmp 0x421c81
cmp ecx, 0x20c
mov edx, 0x25f
cmovg eax, edx
mov ecx, dword [edi + 0x7c4]
push 1
mov dword [ebp - 0x14], eax
sub esp, 0x10
movups xmm0, xmmword [ebp - 0x1c]
mov edx, dword [ecx]
mov eax, esp
movups xmmword [eax], xmm0
call dword [edx + 0x5c]
add dword [edi + 0x7a0], 4
cmp dword [edi + 0x7a0], 0x25f
jl case.0x421cfb.1128
mov dword [edi + 0x7a0], 0xffffffdc
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10
mov ecx, edi
call fcn.00423690
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10
add eax, 0xfffffb9a
cmp eax, 7
ja case.0x421cfb.1128
jmp dword [eax*4 + 0x421f20]
push 1
mov ecx, edi
call fcn.0047d730
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10
mov byte [edi + 0x7a4], 1
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10
cmp dword [ebp + 0xc], 0
mov ecx, edi
push 1
je 0x421d5f
push 1
call fcn.0047e010
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10
push 0
call fcn.0047e010
mov ecx, dword [edi + 0x7cc]
test ecx, ecx
je case.0x421cfb.1128
push 0
call fcn.0046f920
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10
lea ecx, [ebp + 0x10]
call fcn.004213a0
mov eax, dword [ebp + 0xc]
mov dword [ebp - 4], 0
lea esi, [eax + eax]
push esi
lea eax, [ebp + 0x10]
push 0x53a7b0
push eax
call fcn.00405240
mov ecx, dword [edi + 0x7c0]
add esp, 0xc
push esi
call fcn.00487fd0
lea ecx, [ebp + 0x10]
jmp 0x421ef2
mov eax, dword [ebp + 0xc]
cmp eax, 1
jne 0x421de3
mov dword [edi + 0x7a0], 0xffffffdc
mov ecx, dword [edi + 0x7c4]
test eax, eax
setne al
movzx eax, al
mov edx, dword [ecx]
push eax
call dword [edx + 0x104]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10
cmp byte [edi + 0x772], 0
je case.0x421cfb.1128
push 1
mov ecx, edi
call fcn.0047d730
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10
call fcn.004056c0
mov ecx, eax
test ecx, ecx
je 0x421f0b
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp + 0xc], eax
mov esi, dword [ebp + 0x10]
lea ecx, [ebp + 0xc]
push esi
mov dword [ebp - 4], 1
call fcn.00404ac0
test al, al
jne 0x421ed9
test esi, esi
je 0x421ed1
push 0
push 0
push 0xffffffffffffffff
push esi
push 0
push 3
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea edx, [eax - 1]
mov dword [ebp + 8], edx
test edx, edx
jle 0x421ed1
mov esi, dword [ebp + 0xc]
mov ecx, 1
mov eax, dword [esi - 8]
sub ecx, dword [esi - 4]
sub eax, edx
or eax, ecx
jge 0x421ead
push edx
lea ecx, [ebp + 0xc]
call fcn.00405fa0
mov esi, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
push edx
push esi
push 0xffffffffffffffff
push dword [ebp + 0x10]
push 0
push 3
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov eax, dword [ebp + 8]
cmp eax, dword [esi - 8]
jg 0x421f15
xor ecx, ecx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], cx
jmp 0x421edc
lea ecx, [ebp + 0xc]
call fcn.00405030
mov esi, dword [ebp + 0xc]
mov ecx, dword [edi + 0x7c8]
push esi
mov dword [ebp - 4], 2
mov eax, dword [ecx]
call dword [eax + 0x2c]
lea ecx, [ebp + 0xc]
call fcn.004041e0
mov ecx, dword [ebp - 0xc]
xor eax, eax
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret 0x10
push 0x80004005
call fcn.00404a90
push 0x80070057
call fcn.00404a90
nop
xchg esi, eax
sbb eax, 504234050
inc edx
add bh, dh
push ds
inc edx
add byte [eax], bh
push ds
inc edx
add cl, dl
sbb eax, 0x1d3a0042
inc edx
add byte [edx], al
sbb eax, 0x1d1f0042
inc edx
add byte [ecx + 0x570afc], bh
mov ecx, 0x570afc
jmp fcn.005040ed