Function at 0x4051bf
Capabilities:
Hide graphical window

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pushal
push dword [ebp + 0x10]
call fcn.00404df2
mov eax, dword [ebp + 8]
or eax, eax
je 0x4053c7
call 0x404e41
js 0x404eab
popal
jns 0x404e9b
insd dword es:[edi], dx
popal
imul ebp, dword [esi], 0xe80875ff
inc edi
in al, 0xff
dec dword [ecx]
ror byte [edi], 0x85
jno 0x404e50
add byte [eax], al
call 0x404e68
add al, ch
adc al, byte [eax]
add byte [eax], al
js 0x404eca
popal
jns 0x404eba
imul esi, dword [ebp + 0x6d], 0x7365725f
jo 0x404ec6
ja 0x404ed5
add bh, bh
jne 0x404e73
call fcn.00403290
or eax, eax
jne 0x405345
test ebp, ecx
add al, 0
add al, ch
pop es
add byte [eax], al
add byte [ebx + 0x65], ah
outsb dx, byte [esi]
call 0x404e84
arpl word [ebp + 0x6e], sp
arpl word [edi + 0x72], bp
add bh, bh
jne 0x404e8f
call fcn.00403290
or eax, eax
jne 0x405352
test dword [esi - 0x17fffffc], edi
adc al, byte [eax]
add byte [eax], al
call 0x404eab
insd dword es:[edi], dx
popal
jo 0x404f10
pop edi
je 0x404f12
popal
outsb dx, byte [esi]
jae 0x404f10
popal
je 0x404f10
outsd dx, dword [esi]
outsb dx, byte [esi]
jae 0x404eab
push dword [ebp + 8]
call fcn.00403290
or eax, eax
jne 0x40536c
add al, ch
adc eax, dword [eax]
add byte [eax], al
call 0x404ed3
jp 0x404f22
insd dword es:[edi], dx
popal
jo 0x404f3a
jae 0x404f27
pop edi
outsd dx, dword fs:[esi]
ja 0x404f3a
insb byte es:[edi], dx
outsd dx, dword [esi]
popal
jb 0x404ed3
push dword [ebp + 8]
call fcn.00403290
or eax, eax
jne 0x405379
or al, ch
mov ch, 0xe3
invalid
call 0x404efb
jp 0x404f4a
insd dword es:[edi], dx
outsd dx, dword [esi]
jae 0x404f4f
outsd dx, dword fs:[esi]
ja 0x404f62
insb byte es:[edi], dx
outsd dx, dword [esi]
popal
jb 0x404efb
push dword [ebp + 8]
call fcn.00403290
or eax, eax
jne 0x405386
invalid
call 0x404f18
js 0x404f84
popal
jns 0x404f74
popal
imul eax, dword [eax], 0xe80875ff
jo 0x404f01
invalid
jne 0x4053a0
add al, ch
push cs
add byte [eax], al
add byte [eax + 0x72], bh
call 0x404f3b
js 0x404fa1
popal
jns 0x404f91
je 0x404f99
insb byte es:[edi], dx
jo 0x404fa7
jb 0x404fae
add bh, bh
jne 0x404f46
call fcn.00403290
or eax, eax
jne 0x40535f
test dword [esp + eax], edx
add byte [eax], al
add al, ch
adc eax, 0x72000000
popal
call 0x404f65
jb 0x404fb3
add byte [edx + 0x61], dh
insd dword es:[edi], dx
imul ebp, dword [esi + 0x5f], 0x69676f6c
outsb dx, byte [esi]
pop edi
arpl word [edi + 0x6d], bp
insd dword es:[edi], dx
popal
outsb dx, byte [esi]
add bh, bh
jne 0x404f70
call fcn.00403290
or eax, eax
jne 0x4053ba
test dword [ebp + 4], eax
add byte [eax], al
add al, ch
sldt word [eax]
add byte [eax + 0x6c], dh
call 0x404f89
jo 0x404fe8
popal
jns 0x404fe4
jb 0x404ff4
pop edi
jbe 0x404fed
jae 0x404ffb
popal
insb byte es:[edi], dx
add bh, bh
jne 0x404f94
call fcn.00403290
or eax, eax
jne 0x405393
test edx, edi
add eax, dword [eax]
add al, ch
sldt word [eax]
add byte [eax + 0x72], bh
call 0x404fad
js 0x405012
popal
jns 0x405002
popal
outsb dx, byte [esi]
je 0x405010
arpl word [eax + 0x65], bp
popal
je 0x404fad
push dword [ebp + 8]
jne 0x404fb8
call fcn.00403290
or eax, eax
jne 0x4053ad
invalid
test eax, esi
add eax, dword [eax]
add cl, ch
add eax, 0xe8000004
push cs
add byte [eax], al
add byte [ecx + 0x64], al
insd dword es:[edi], dx
imul ebp, dword [esi + 0x53], 0x43646e65
push 0xff007461
jne 0x404fe4
jmp 0x4053c7
call fcn.00403290
or eax, eax
je 0x404ff4
push 0xc7
add byte [eax], al
push dword [ebp + 0x10]
push 0x411cbf
call dword [sym.imp.kernel32.dll_RtlMoveMemory]
adc byte [eax - 0x41], ch
sbb al, 0x41
add bh, bh
adc eax, sym.imp.kernel32.dll_RtlMoveMemory
call 0x405004
push edx
popal
imul ebp, dword fs:[edi + 0x4c], 0x74696d69
add bh, bh
jne 0x405013
je 0x405004
push dword [ebp + 0xc]
call fcn.00403290
or eax, eax
je 0x405022
push dword [ebp + 0x10]
adc al, ch
mov al, byte [0x83fffff3]
clc
ja 0x405022
call fcn.004043b8
cmp eax, 0x64
ja 0x405022
mov dword [0x436714], eax
call 0x405038
push ebx
insb byte es:[edi], dx
jo 0x405084
popal
je 0x405099
jb 0x405088
imul ebp, dword [ebp + 0x65], 0xc75ff00
call fcn.00403290
or eax, eax
je 0x405078
push dword [ebp + 0x10]
call fcn.004043b8
or eax, eax
je 0x40506b
cmp eax, 0x17
ja 0x40506b
push eax
push 0x411c43
push 0x411d87
call dword [sym.imp.user32.dll_wsprintfA]
add esp, 0xc
jmp 0x405078
push 0x20
push 0x411d87
call dword [sym.imp.kernel32.dll_RtlZeroMemory]
call 0x405092
push ebx
jo 0x4050e5
arpl word [ecx + 0x74], si
outsd dx, dword [esi]
jb 0x4050da
outsb dx, byte gs:[esi]
outsb dx, byte [esi]
dec ebp
jae 0x405101
popal
add bh, bh
jne 0x4050a1
call fcn.00403290
or eax, eax
je 0x4050ab
dec dword [ecx]
sal byte [ebp + ecx - 1], 0x75
adc al, ch
adc dh, bl
invalid
push dword [ebp + 0x10]
call fcn.004043b8
mov dword [0x411daf], eax
call 0x4050b8
inc ecx
dec ecx
je 0x40511b
insd dword es:[edi], dx
add bh, bh
jne 0x4050c7
call fcn.00403290
or eax, eax
je 0x4050d6
push dword [ebp + 0x10]
call fcn.004043b8
cmp eax, 3
ja 0x4050d6
mov dword [0x411dbb], eax
call 0x4050e8
push eax
insb byte es:[edi], dx
add byte [eax + 0x6c], dl
popal
jns 0x405145
jb 0x405134
outsb dx, byte gs:[esi]
popal
insd dword es:[edi], dx
add bh, bh
jne 0x4050f7
call fcn.00403290
or eax, eax
je 0x405106
push dword [ebp + 0x10]
call fcn.004043b8
cmp eax, 1
ja 0x405106
mov dword [0x44fecf], eax
call 0x405120
push ebx
jo 0x405173
arpl word [ecx + 0x74], si
outsd dx, dword [esi]
jb 0x405168
outsb dx, byte gs:[esi]
dec ebp
jae 0x40518f
jae 0x40517e
popal
add bh, bh
jne 0x40512f
call fcn.00403290
or eax, eax
je 0x405139
push dword [ebp + 0x10]
call fcn.004043b8
mov dword [0x411daf], eax
call 0x40514f
inc ecx
push esi
outsd dx, dword [esi]
imul esp, dword fs:[ecx + 0x54], 0x6f
popal
push esp
outsd dx, dword [esi]
push edx
jne 0x4051b6
jp 0x4051ae
imul eax, dword [eax], 0xffffffff
jne 0x40515e
call fcn.00403290
or eax, eax
je 0x405168
push dword [ebp + 0x10]
call fcn.004043b8
mov dword [0x411dab], eax
call 0x40517e
push edx
insd dword es:[edi], dx
outsd dx, dword [esi]
jbe 0x4051d8
dec eax
popal
bound esp, qword [ecx + 0x72]
push esp
imul ebp, dword [ebp + 0x65], 0x75ff0072
or al, 0xe8
or ah, cl
invalid
push dword [ebp + 0xc]
call fcn.00403290
or eax, eax
je 0x4051ab
push dword [ebp + 0x10]
call fcn.004043b8
cmp eax, 0x3e8
ja 0x4051ab
invalid
imul eax, eax, 0x3e8
cmp eax, 0x2bf20
ja 0x4051ab
mov dword [0x411a89], eax
call 0x4051bf
add byte [eax], al
inc edx
popal
outsb dx, byte [esi]
push ebx
jns 0x405224
arpl word [ebx + 0x65], dx
jb 0x405231
imul esp, dword [ebx + 0x65], 0xc75ff00
call fcn.00403290
or eax, eax
je 0x4051d8
push dword [ebp + 0x10]
call fcn.004043b8
mov dword [0x4471b8], eax
call 0x4051e9
dec eax
imul esp, dword [ebp + 0x43], 0x6f736e6f
insb byte es:[edi], dx
add bh, bh
jne 0x4051f8
call fcn.00403290
or eax, eax
je 0x40521d
push dword [ebp + 0x10]
call fcn.004043b8
or eax, eax
je 0x40521d
mov dword [0x411dcf], eax
cmp dword [0x411dcf], 0
je 0x40521d
push 6
push dword [0x490c60]
call dword [sym.imp.user32.dll_ShowWindow]
call 0x40522d
push ebx
push 0x6144776f
outsd dx, dword [esi]
ja 0x40526b
popal
insd dword es:[edi], dx
popal
add bh, bh
jne 0x40523c
call fcn.00403290
or eax, eax
je 0x405246
pop ebx
loopne 0x405233
invalid
dec dword [ecx]
sal byte [ebp + ecx - 1], 0x75
adc al, ch
ja 0x405230
push dword [ebp + 0x10]
call fcn.004043b8
mov dword [0x42c9ca], eax
invalid
call 0x405252
inc ecx
jo 0x4052b7
dec ebx
jns 0x405252
push dword [ebp + 0xc]
call fcn.00403290
or eax, eax
je 0x405269
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.00408b4a
call 0x405279
push ebx
jb 0x4052e8
add byte [eax], al
add byte [ebx + 0x65], dl
jb 0x4052e8
jb 0x4052c3
popal
insd dword es:[edi], dx
add bh, bh
jne 0x405288
call fcn.00403290
or eax, eax
je 0x405295
push 0x2f
push dword [ebp + 0x10]
jne 0x40529a
push 0x451426
call dword [sym.imp.kernel32.dll_RtlMoveMemory]
call 0x4052a9
inc esi
imul esi, dword [edx + 0x65], 0x72617453
je 0x4052f0
imul ebp, dword [ebp + 0x69], 0x75ff0074
or al, 0xe8
invalid
adc al, ch
sti
invalid
adc eax, dword [eax]
add byte [eax], al
inc ebx
push 0x65746165
jb 0x405311
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [ebx + 0x65], bp
push esp
imul ebp, dword [ebp + 0x65], 0xc75ff00
push dword [ebp + 0xc]
call fcn.00403290
or eax, eax
je 0x4052ff
push dword [ebp + 0x10]
call fcn.004043b8
cmp eax, 0x258
jae 0x4052fa
adc al, ch
retf 0xfff0
add al, byte [eax]
add byte [ebx + 5], dh
mov eax, 0x258
mov dword [0x451126], eax
call 0x40531b
inc edx
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [ebx + 0x65], bp
push eax
insb byte es:[edi], dx
popal
jns 0x405375
jb 0x40535b
dec ecx
outsb dx, byte [esi]
je 0x40537a
jb 0x40537d
popal
arpl word [ebp], sp
push dword [ebp + 0xc]
call fcn.00403290
or eax, eax
je 0x405336
push dword [ebp + 0x10]
call fcn.004043b8
cmp eax, 0x258
jae 0x40533b
mov eax, 0x258
mov dword [0x45112a], eax
jmp 0x4053c7
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.004053cc
jmp 0x4053c7
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.0040560c
add byte [eax], al
jmp 0x4053c7
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.00405907
jmp 0x4053c7
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.004056ad
add byte [eax], al
jmp 0x4053c7
push dword [ebp + 0x10]
jne 0x40538c
push dword [ebp + 0xc]
jne 0x40538b
call fcn.004083e6
jmp 0x4053c7
push dword [ebp + 0x10]
push dword [ebp + 0xc]
or al, 0xe8
pop ebx
add byte [bx + si], al
call fcn.0040baec
jmp 0x4053c7
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.00405b0e
jmp 0x4053c7
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.0040572d
jmp 0x4053c7
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.00405b96
jmp 0x4053c7
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.0040bf23
jmp 0x4053c7
popal
leave
ret 0xc