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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x100618ef
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xf8
mov byte [esp + 0x2c], dl
push ebx
push esi
push edi
test dl, dl
je 0x10039062
mov eax, dword [ebp + 0x18]
cmp byte [eax], 0
je 0x100397bd
push 0x128b
push 0
call dword [sym.imp.USER32.dll_CharLowerBuffW]
jmp 0x100397bd
mov eax, dword [ebp + 0xc]
push 0
pop ebx
mov dword [esp + 0x40], eax
mov dword [esp + 0x1c], 0x1c6c
cmp dword [esp + 0x1c], 0x1146
push 1
pop edi
jge 0x1003915e
lea eax, [esp + 0x30]
push eax
call fcn.10040f0b
mov edi, ebx
mov dword [esp + 0x54], ebx
mov esi, ebx
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], esi
xor eax, eax
mov dword [esp + 0x10c], ebx
mov ecx, dword [esp + 0x30]
inc eax
mov dword [esp + 0x3c], eax
cmp ecx, eax
jl 0x100390e2
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x50]
call fcn.100412fb
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x3c]
sub ecx, eax
inc eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x3c], eax
cmp eax, ecx
jle 0x100390b5
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
sub esi, edi
sar esi, 2
lea eax, [esi - 1]
test eax, eax
js 0x10039101
test ecx, ecx
jle 0x10039101
inc dword [edi + eax*4]
mov ecx, dword [esp + 0x30]
dec ecx
dec eax
mov dword [esp + 0x30], ecx
jns 0x100390ee
push esi
call fcn.10041059
push eax
call fcn.1001aded
mov dword [esp + 0x20], ebx
pop ecx
test esi, esi
je 0x10039131
push dword [edi + ebx*4]
call fcn.1004117c
mov edx, 0x1006d53c
mov ecx, eax
call fcn.10008de6
inc ebx
cmp ebx, esi
jb 0x10039116
xor ebx, ebx
push 0x1007b9d8
call fcn.1001aded
or dword [esp + 0x110], 0xffffffff
pop ecx
test edi, edi
je 0x1003915b
push edi
call fcn.10048409
pop ecx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
xor edi, edi
inc edi
push 3
lea ecx, [esp + 0x90]
call fcn.10006705
push 0x675b
push 0x221a
lea eax, [esp + 0x34]
mov dword [esp + 0x114], edi
push eax
push edi
push ebx
push 0x57bd
mov dword [esp + 0x4c], 0x7ea4c57
lea ecx, [esp + 0xa4]
push 0x77dd
xor dl, dl
call fcn.10039880
add esp, 0x1c
mov dword [esp + 0x2c], ebx
jmp 0x100391bd
mov eax, dword [esp + 0x2c]
mov dword [esp + eax*4 + 0x5c], 0xdada439b
inc dword [esp + 0x2c]
cmp dword [esp + 0x2c], 4
jl 0x100391ad
push 2
pop esi
mov dword [esp + 0x5c], esi
cmp dword [esp + 0x5c], ebx
jl 0x100392ba
mov dword [esp + 0x10], 0x4cdb8faa
lea ecx, [esp + 0x98]
push esi
call fcn.10006705
mov dword [esp + 0x14], ebx
jmp 0x10039206
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x98]
mov dword [eax + ecx*4], 0x383c67ee
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x100391f0
mov dword [esp + 0x10], esi
cmp dword [esp + 0x10], ebx
jl 0x1003928b
mov esi, dword [esp + 0x98]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x1c], 0xffffffff
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x8c]
mov eax, dword [ecx + eax*4]
add eax, dword [ecx + edx*4]
xor edx, edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x5c]
add ecx, 9
cmp ecx, eax
mov eax, dword [esp + 0x1c]
setl dl
xor ecx, ecx
cmp dword [esi + 4], edx
setle cl
xor edx, edx
inc eax
cmp eax, ecx
setg dl
sub edx, 0x2d7a
neg edx
sbb edx, edx
inc edx
add edx, dword [esp + 0x5c]
mov dword [esi + 4], edx
dec dword [esp + 0x10]
jns 0x1003921d
push 2
pop esi
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x8c]
cmp dword [eax + ecx*4], 0xffff
lea ecx, [esp + 0x98]
sbb eax, eax
inc eax
mov dword [esp + 0x10], eax
call fcn.10006788
dec dword [esp + 0x5c]
jns 0x100391d5
or dword [esp + 0x10c], 0xffffffff
lea ecx, [esp + 0x8c]
call fcn.10006788
push 0x6d0
lea eax, [esp + 0x2f]
mov dword [esp + 0x14], 0xd5e48d32
push eax
push 0x7d91
push edi
push edi
mov dword [esp + 0x30], 0x8b35
xor dl, dl
push 0x5894
mov dword [esp + 0x30], 0xfffffff8
mov ecx, 0x226f
mov byte [esp + 0x43], bl
push 0x37ea
call fcn.10039880
add esp, 0x1c
mov dword [esp + 0x10], 0xfffffffe
jmp 0x1003949b
mov dword [esp + 0x18], 7
mov dword [esp + 0x14], 0x310c
cmp dword [esp + 0x14], 0x3126
jle 0x10039386
mov esi, ebx
mov edi, ebx
lea eax, [edi + esi]
cdq
lea ecx, [esp + 0xd0]
push edx
push eax
call fcn.10001a84
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1003935b
mov eax, dword [eax]
push eax
call fcn.1004823d
pop ecx
push ebx
push 1
lea ecx, [esp + 0xd8]
call fcn.10006cdf
inc edi
cmp edi, 0x7d9
jl 0x1003933f
inc esi
cmp esi, 0x639e
jl 0x1003933d
xor edi, edi
inc edi
mov dword [esp + 0x34], 0xfffffffd
cmp dword [esp + 0x14], 0x2ef9
jge 0x100393a3
push str.cnypo_atoidlchm_izmtdwjg_usyevipdl_lhya_nshoreltq_enx_nsh_hsusfbffp_hpocokbpg_wea_iyt_wjvdrnn_fzmmdds
call fcn.1004823d
pop ecx
or dword [esp + 0x10c], 0xffffffff
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x18], ebx
je 0x100393ec
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
sub eax, 0x65e3
neg eax
sbb eax, eax
inc eax
cmp eax, 0xfffe
sbb eax, eax
inc eax
sub ecx, eax
mov eax, edi
neg ecx
sbb ecx, ecx
add ecx, 0x57ce14de
sub ecx, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [esp + 0x1c]
jle 0x100393ee
mov eax, ebx
add eax, 0xfffffffb
imul eax, dword [esp + 0x18]
test eax, eax
je 0x10039460
mov dword [esp + 0x14], 4
mov dword [esp + 0x14], ebx
jmp 0x10039417
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0xc4], edi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x10039408
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
dec edx
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
setge cl
imul eax, ecx, 0xe5f5
test eax, eax
je 0x10039449
mov edx, ebx
cmp dword [esp + 0xc4], ebx
je 0x1003944b
mov edx, edi
mov eax, dword [esp + 0x18]
xor ecx, ecx
cmp eax, edx
setg cl
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x18]
jmp 0x10039497
mov dword [esp + 0x14], 9
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
inc eax
je 0x10039491
mov eax, dword [esp + 0x14]
xor ecx, ecx
cmp eax, 0x3c394a73
mov eax, edi
setle cl
sub ecx, dword [esp + 0x1c]
jne 0x10039493
mov eax, ebx
mov dword [esp + 0x34], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x15
jge 0x10039321
mov eax, dword [ebp + 0xc]
mov ecx, 0x1245
push 0x77f7
mov al, byte [eax]
mov byte [esp + 0x27], al
lea eax, [esp + 0x27]
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10039bce
add esp, 0xc
mov dword [esp + 0x24], 2
push 3
pop esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], 0xffffffff
mov dword [esp + 0x58], 0xe605
mov dword [esp + 0x24], 0xfffffffa
jmp 0x100395ac
push ecx
push 0x5b09
push 0x1217
push 0x7810
push 0x7b2c
lea eax, [esp + 0x80]
mov dword [esp + 0x84], 0x8306
push eax
push 0x6ab1
push ecx
lea eax, [esp + 0x44]
mov dword [esp + 0x8c], ebx
push eax
push 0x10bc
push ecx
push 0x5886
push ebx
lea eax, [esp + 0xb8]
mov dword [esp + 0xbc], 0x4082
push eax
lea eax, [esp + 0xa8]
mov dword [esp + 0xac], 0x31bb000e
push eax
push ecx
lea eax, [esp + 0xb4]
mov dword [esp + 0xc4], 0x78254981
push eax
push 0x6c3c
push 0x4320
push ecx
lea eax, [esp + 0xd8]
push eax
lea eax, [esp + 0x98]
push eax
push ecx
push ecx
push 0x2084
lea ecx, [esp + 0xac]
call fcn.1003b111
add esp, 0x64
dec dword [esp + 0x24]
cmp dword [esp + 0x24], 0xfffffff8
jg 0x100394f7
lea eax, [esp + 0x58]
mov ecx, 0x5840
push eax
lea eax, [esp + 0x4c]
push eax
push ebx
lea eax, [esp + 0x30]
push eax
push 0x1739
lea edx, [esp + 0x58]
call fcn.10039a87
movdqa xmm0, xmmword [0x1006e9d0]
lea eax, [esp + 0xd8]
add esp, 0x14
mov dword [esp + 0x78], ebx
lea ecx, [esp + 0x78]
mov dword [esp + 0x7c], ebx
movdqu xmmword [esp + 0xb4], xmm0
mov dword [esp + 0x80], ebx
push dword [esp + 0x58]
push eax
lea eax, [esp + 0xbc]
push eax
push ebx
call fcn.100096b7
mov dword [esp + 0x10c], 4
mov dword [esp + 0x10], 0xe5ccc90a
mov dword [esp + 0x1c], 0xfffffffc
mov dword [esp + 0x10], esi
cmp dword [esp + 0x10], ebx
jl 0x1003979c
mov esi, dword [esp + 0x78]
mov dword [esp + 0x34], esi
mov dword [esp + 0x18], 0x1e02
cmp dword [esp + 0x18], 0x1fba
jle 0x100396c7
mov esi, ebx
mov edi, ebx
mov ecx, ebx
mov dword [esp + 0x1c], ebx
mov eax, edi
cdq
idiv ecx
mov eax, esi
lea ecx, [esp + 0xe8]
sub eax, edx
cdq
push edx
push eax
call fcn.10001a84
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1003968a
mov eax, dword [eax]
push eax
call fcn.1004823d
pop ecx
push ebx
push 1
lea ecx, [esp + 0xf0]
call fcn.10006cdf
mov ecx, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x1c], ecx
cmp ecx, 0x2aa5
jl 0x10039668
inc edi
cmp edi, 0xb08
jl 0x10039662
inc esi
cmp esi, 0x5b74
jl 0x10039660
mov esi, dword [esp + 0x34]
mov dword [esp + 0x14], 0xfff9
cmp dword [esp + 0x18], 0x1b23
jge 0x100396e4
push str.cve_hxllrzu_cgdqp_mgyxqhd_brbbigu_uhoyrcfcr_iuq_ofkhjhup_cesy_nwnktffr_wlw
call fcn.1004823d
pop ecx
push 2
mov dword [esp + 0x110], 4
mov dword [esp + 0x1c], ebx
pop ecx
jmp 0x10039707
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0xac], ebx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ecx
jl 0x100396f8
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x18], ecx
jge 0x1003972f
xor edi, edi
inc edi
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0xa4], edi
inc dword [esp + 0x18]
cmp dword [esp + 0x18], ecx
jl 0x1003971a
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x14]
neg eax
sbb eax, eax
xor edx, edx
inc eax
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov dword [esi + 8], eax
lea ecx, [eax - 1]
mov eax, dword [esp + 0x14]
cmp ecx, eax
mov eax, dword [esp + 0x10]
setg dl
sub eax, edx
neg eax
sbb eax, eax
add eax, 0xfe3e
mov dword [esp + 0xa4], eax
mov dword [esp + 0x1c], eax
dec dword [esp + 0x10]
jns 0x1003964c
lea ecx, [esp + 0x78]
call fcn.10006788
mov esi, dword [esp + 0x40]
mov dl, 0xa3
mov cl, byte [esi]
call fcn.10041670
mov ecx, dword [ebp + 8]
mov byte [esi], al
mov al, byte [esp + 0x23]
mov byte [ecx], al
mov ecx, dword [esp + 0x104]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret