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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1005c393
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc0
push ebx
push esi
xor ebx, ebx
mov byte [esp + 0x38], dl
mov dword [esp + 0x6c], ecx
push edi
test dl, dl
je 0x100416ea
push 2
mov dword [esp + 0x14], 1
pop ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], 0x2e0f6194
mov dword [esp + 0x14], ebx
jmp 0x10040eb2
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x40], 0xffffffff
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x10040ea2
mov dword [esp + 0x10], ebx
jmp 0x10041006
mov dword [esp + 0x18], 0x32bb11ac
mov dword [esp + 0x14], 0xfe511bd7
mov dword [esp + 0x14], 0xfffffff9
mov dword [esp + 0x18], ebx
jmp 0x10040ff8
mov eax, dword [esp + 0x10]
neg eax
sbb eax, eax
inc eax
cmp eax, 0xf495
jge 0x10040f94
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x40]
cmp eax, 0x65bc8114
mov eax, dword [esp + 0x10]
setge cl
cmp ecx, 0xfff7
mov eax, dword [esp + eax*4 + 0x40]
sbb edx, edx
inc edx
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x40]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x40]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + eax*4 + 0x40]
mov eax, dword [esp + 0x20]
cmp eax, ecx
setle dl
sub edx, 0x7180
add edx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
neg edx
sbb edx, edx
inc edx
cmp edx, dword [esp + eax*4 + 0x40]
jle 0x10040f84
cmp dword [esp + 0x1c], ebx
je 0x10040f84
xor eax, eax
inc eax
jmp 0x10040f86
mov eax, ebx
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x1c], ebx
jne 0x10040f94
mov ecx, ebx
jmp 0x10040f97
xor ecx, ecx
inc ecx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x40]
imul eax, ecx
test eax, eax
jne 0x10040fae
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x40]
mov eax, dword [esp + 0x10]
mov edx, 0x559a
push ebx
push 0x6cd9
push 1
mov eax, dword [esp + eax*4 + 0x4c]
mov ecx, 0x5e14
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x20], 1
push 0x4b00
call fcn.10040715
add esp, 0x10
inc dword [esp + 0x18]
push 2
pop ecx
cmp dword [esp + 0x18], ecx
jle 0x10040ee3
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jle 0x10040ec2
mov dword [esp + 0x10], ebx
jmp 0x10041039
push 1
lea eax, [esp + 0x2f]
mov byte [esp + 0x2f], bl
push 0x232c
push eax
mov dl, 1
mov ecx, 0x2c14
call fcn.1003fed3
add esp, 0xc
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x12
jg 0x10041016
xor eax, eax
mov dword [esp + 0x8c], 7
mov dword [esp + 0x88], ebx
mov word [esp + 0x78], ax
push 0x34a7
push 0x6f8f
push 0x6a9e
push 0x2a1f
push 0x45e5
push 0x2c70
push 1
push ebx
mov edx, 0x7bdf
mov dword [esp + 0xf4], ebx
xor cl, cl
call fcn.10040585
add esp, 0x20
lea eax, [esp + 0x78]
lea edx, [ebp + 0x14]
push ebx
push ecx
push 0x6163
push ecx
push ecx
push 0xb28
push 1
push 0x64de
push eax
mov ecx, 0x5f80
call fcn.10040900
mov eax, dword [0x100790c0]
add esp, 0x24
test al, 1
jne 0x100410f0
or eax, 1
mov dword [0x100790c0], eax
push 0x6125
mov byte [esp + 0xd8], 1
call fcn.1002ac6b
mov word [0x100790b8], ax
mov byte [esp + 0xd8], bl
mov eax, dword [0x100790c0]
pop ecx
test al, 2
jne 0x1004111c
or eax, 2
mov dword [0x100790c0], eax
push 0x6b03
mov byte [esp + 0xd8], 2
call fcn.1002ac6b
pop ecx
mov word [0x100790c4], ax
mov byte [esp + 0xd4], bl
push 3
pop ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x24], 0x6e6a3735
mov dword [esp + 0x24], 0x88047d20
mov dword [esp + 0x2c], 0x7b051af7
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x24], 4
cmp dword [esp + 0x10], ebx
je 0x10041155
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
je 0x100411d5
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x58]
push 2
call fcn.10001b45
lea eax, [esp + 0x58]
mov byte [esp + 0xd4], 3
push eax
lea edx, [esp + 0x98]
call fcn.10040860
mov dword [esp], 0x75b3
mov dl, 1
push 0x49d4
push ecx
push ecx
mov ecx, 0x56d6
call fcn.10040218
add esp, 0x10
dec dword [esp + 0x18]
mov byte [esp + 0xd4], bl
cmp dword [esp + 0x58], 0
je 0x100413f1
push dword [esp + 0x58]
call fcn.10044367
pop ecx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
jmp 0x100413f1
mov dword [esp + 0x20], 0x56f8
cmp dword [esp + 0x20], 0x58dc
jle 0x1004123a
mov esi, ebx
mov dword [esp + 0x1c], ebx
mov edi, esi
mov esi, 0x5f78
mov eax, edi
lea ecx, [esp + 0x98]
cdq
push edx
push eax
call fcn.10003aad
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1004120f
mov eax, dword [eax]
push eax
call fcn.100445e8
pop ecx
push ebx
push 1
lea ecx, [esp + 0xa0]
call fcn.10001e5d
dec edi
dec esi
jne 0x100411f4
mov esi, dword [esp + 0x1c]
inc esi
mov dword [esp + 0x1c], esi
cmp esi, 0x2a97
jl 0x100411ed
mov dword [esp + 0x1c], 0xffff
cmp dword [esp + 0x20], 0x5623
jge 0x10041257
push str.gmu_pfuqtqlwt_cyul_rsyaimkd
call fcn.100445e8
pop ecx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0x14], ebx
jmp 0x10041274
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x30], 0x9fe57f6c
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x10041264
mov dword [esp + 0x10], ebx
jmp 0x100413c0
mov dword [esp + 0x14], 0x469209a4
push ecx
call fcn.10040976
pop ecx
mov dword [esp + 0x18], ebx
jmp 0x100413b1
mov eax, dword [esp + 0x14]
xor ecx, ecx
cmp eax, 0xffffffff
mov eax, dword [esp + 0x30]
setne cl
sub ecx, eax
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x30]
sub ecx, eax
add ecx, 0x9469
jne 0x100412ca
cmp dword [esp + 0x2c], ebx
jne 0x100412ca
mov ecx, ebx
jmp 0x100412cd
xor ecx, ecx
inc ecx
mov eax, dword [esp + 0x10]
mov edx, dword [esp + eax*4 + 0x30]
mov eax, dword [esp + 0x14]
sub ecx, eax
mov eax, dword [esp + 0x10]
add edx, ecx
xor ecx, ecx
cmp edx, eax
setne cl
imul ecx, dword [esp + 0x14]
test ecx, ecx
jne 0x100412fb
cmp dword [esp + 0x30], ebx
jne 0x100412fb
mov eax, ebx
jmp 0x100412fe
xor eax, eax
inc eax
xor edx, edx
cmp eax, 0xffffffff
mov eax, dword [esp + 0x2c]
setne dl
xor ecx, ecx
cmp eax, edx
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
setg cl
add ecx, 7
imul edx, ecx
sub edx, eax
mov dword [esp + 0x2c], edx
xor edx, edx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
cmp ecx, eax
setl dl
sub edx, 0xfc5a
jne 0x1004134a
mov eax, dword [esp + 0x18]
cmp dword [esp + eax*4 + 0x30], ebx
jne 0x1004134a
mov eax, ebx
jmp 0x1004134d
xor eax, eax
inc eax
mov ecx, dword [esp + 0x18]
xor edx, edx
imul ecx, eax
mov eax, dword [esp + 0x24]
add ecx, 0x5eac
cmp ecx, eax
mov eax, dword [esp + 0x1c]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x10]
setg cl
xor edx, edx
mov eax, dword [esp + eax*4 + 0x30]
cmp ecx, eax
mov eax, dword [esp + 0x10]
setge dl
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0x30]
test eax, eax
mov eax, dword [esp + 0x18]
sete cl
mov eax, dword [esp + eax*4 + 0x30]
sub eax, ecx
xor ecx, ecx
cmp eax, edx
setge cl
cmp ecx, 0xeeb303a6
sbb eax, eax
neg eax
mov dword [esp + 0x14], eax
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 1
jle 0x1004129c
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jle 0x10041284
lea eax, [esp + 0x2c]
mov edx, 0x61ef
push eax
push ebx
push 1
push 0x6b78
push 0x49d8
push 0x38e0
mov cl, 1
call fcn.10040ab4
add esp, 0x18
push ecx
call fcn.100404b7
mov esi, dword [ebp + 0x14]
pop ecx
test esi, esi
je 0x100414da
mov dword [esp + 0x24], 0xb0f73838
lea ecx, [esp + 0x64]
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x4c], 1
push 3
call fcn.10001b45
lea eax, [esp + 0x64]
mov byte [esp + 0xd4], 6
push eax
lea eax, [esp + 0x94]
mov dword [esp + 0x28], 0xfffffffb
push eax
mov dl, 1
mov dword [esp + 0x7c], 0xffffffff
call fcn.10041780
pop ecx
lea edx, [esp + 0x78]
mov ecx, 0x1706
call fcn.10040881
pop ecx
lea edx, [esp + 0x4c]
call fcn.10040485
mov byte [esp + 0xd4], bl
cmp dword [esp + 0x64], 0
je 0x1004148f
push dword [esp + 0x64]
call fcn.10044367
pop ecx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebx
call fcn.1003feaa
push 0x34
pop ecx
xor edx, edx
div ecx
push 0x6186
lea eax, [esp + 0x3c]
mov dword [esp + 0x3c], edx
push eax
push 0x27a
lea eax, [esp + 0x84]
mov edx, 0x100790c4
push eax
push 0x100790b8
push 0x4c04
push 1
push 1
xor cl, cl
call fcn.10040585
add esp, 0x20
dec esi
jne 0x10041403
mov dword [esp + 0x1c], 0x77862fd4
mov dword [esp + 0x18], 0x4205
cmp dword [esp + 0x18], 0x4592
jle 0x1004156c
mov esi, ebx
mov eax, ebx
mov dword [esp + 0x1c], ebx
mov edi, ebx
mov ecx, ebx
mov dword [esp + 0x20], ebx
add ecx, edi
add eax, esi
sar eax, cl
lea ecx, [esp + 0xb0]
cdq
push edx
push eax
call fcn.10003aad
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10041523
mov eax, dword [eax]
push eax
call fcn.100445e8
pop ecx
push ebx
push 1
lea ecx, [esp + 0xb8]
call fcn.10001e5d
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x20], ecx
cmp ecx, 0x7960
jl 0x10041504
inc edi
cmp edi, 0x7153
jl 0x100414fe
inc eax
mov dword [esp + 0x1c], eax
cmp eax, 0x7d1c
jl 0x100414fc
inc esi
cmp esi, 0x5fb5
jl 0x100414f6
mov dword [esp + 0x14], ebx
jmp 0x10041582
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x50], 0x3367
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x10041572
cmp dword [esp + 0x18], 0x3fcf
jge 0x1004159e
push str.qytsh_jqbtiimv_tnjaiq_uwyxzx_hjmpnuqyk
call fcn.100445e8
pop ecx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0x1c], ebx
jmp 0x1004164f
mov dword [esp + 0x20], 0x70ade21
mov dword [esp + 0x20], ebx
cmp dword [esp + 0x20], 0x15
jl 0x10041647
xor edx, edx
inc edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x10], edx
cmp dword [esp + 0x10], ebx
jl 0x1004163c
mov dword [esp + 0x18], 5
mov dword [esp + 0x18], ebx
jmp 0x100415f8
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + eax*4 + 0x50]
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x50], ecx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jle 0x100415e4
mov dword [esp + 0x18], ebx
jmp 0x10041630
mov dword [esp + 0x14], 0x6de0184d
mov dword [esp + 0x14], edx
cmp dword [esp + 0x14], ebx
jl 0x1004162c
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + eax*4 + 0x50]
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x50], ecx
dec dword [esp + 0x14]
jns 0x10041616
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jle 0x10041604
dec dword [esp + 0x10]
jns 0x100415d6
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 0x15
jge 0x100415c8
mov eax, dword [esp + 0x54]
dec dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0xfffffff4
jle 0x100415ae
mov dword [esp + 0x24], 0x753f
cmp dword [esp + 0x24], 0x78aa
jle 0x100416c2
push ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov esi, ebx
mov dword [esp + 0x1c], ebx
mov edi, ebx
mov eax, edi
mov dword [esp + 0x38], ebx
xor eax, esi
mov dword [esp + 0x4c], eax
mov esi, eax
mov eax, esi
mov ecx, 0x10076818
or eax, ebx
cdq
push edx
push eax
call fcn.10001a30
inc ebx
cmp ebx, 0xee4
jl 0x1004168b
mov esi, dword [esp + 0x1c]
inc edi
push 0
pop ebx
cmp edi, 0x5e3c
jl 0x1004167d
inc esi
mov dword [esp + 0x1c], esi
cmp esi, 0xdc
jl 0x1004167b
mov eax, dword [esp + 0x70]
lea ecx, [esp + 0x78]
cmp eax, ecx
je 0x100416d9
push 0xffffffffffffffff
push ebx
push ecx
mov ecx, eax
call fcn.10018952
push ebx
push 1
lea ecx, [esp + 0x80]
call fcn.10018a82
jmp 0x10041704
push ebx
push ebx
push 0x28a
push ebx
push 0x2081
push ebx
push ebx
push 0x1d22
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ecx, dword [esp + 0xcc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret