Function at 0x10045cd0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1006404c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x110
cmp byte [ebp + 0x20], 0
push ebx
push esi
push edi
mov dword [esp + 0x18], edx
mov dword [esp + 0x48], ecx
je 0x1004612d
mov dword [esp + 0x20], 0x2f3f
cmp dword [esp + 0x20], 0x31c3
push 0
pop ebx
jle 0x10045d53
mov esi, ebx
mov edi, ebx
mov dword [esp + 0x10], ebx
lea eax, [edi + esi]
mov ecx, 0x1007bbb8
and eax, ebx
cdq
push edx
push eax
call fcn.1000cbc0
inc ebx
cmp ebx, 0x138
jl 0x10045d23
inc edi
push 0
pop ebx
cmp edi, 0x6384
jl 0x10045d1f
inc esi
cmp esi, 0x3681
jl 0x10045d1d
cmp dword [esp + 0x20], 0x2bd7
jge 0x10045d6c
mov edx, str.wtdiy_umgr_hxbwyv_bdxcos_boedl
mov ecx, 0x1007bbb8
call fcn.1000ee07
mov dword [esp + 0x10], 0x57e5
cmp dword [esp + 0x10], 0x5a29
jle 0x10045e17
mov edi, ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x18], 0x52cb
mov esi, dword [esp + 0x20]
mov eax, ebx
mov dword [esp + 0x40], eax
mov dword [esp + 0x1c], 0x7503
and eax, edi
lea ecx, [esp + 0xd0]
cdq
push edx
push eax
call fcn.100019c5
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10045dc1
mov eax, dword [eax]
push eax
call fcn.1004d87c
pop ecx
push ebx
push 1
lea ecx, [esp + 0xd8]
call fcn.1000d197
mov eax, dword [esp + 0x40]
add eax, esi
dec dword [esp + 0x1c]
mov dword [esp + 0x40], eax
jne 0x10045da6
mov esi, dword [esp + 0x14]
add dword [esp + 0x20], esi
dec dword [esp + 0x18]
jne 0x10045d94
inc esi
mov dword [esp + 0x14], esi
cmp esi, 0x364b
jl 0x10045d88
inc edi
cmp edi, 0x520c
jl 0x10045d84
push ebx
push ebx
call dword [sym.imp.USER32.dll_LoadCursorA]
cmp byte [ebp + 0x14], 0
je 0x100460ad
mov edx, dword [ebp + 0xc]
lea ecx, [esp + 0x74]
mov dword [esp + 0x44], ebx
call fcn.100453d1
mov edx, dword [ebp + 0x1c]
lea ecx, [esp + 0x68]
mov dword [esp + 0x124], ebx
call fcn.100453d1
mov byte [esp + 0x124], 1
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x6c]
sub ecx, dword [esp + 0x74]
sub eax, dword [esp + 0x68]
sar ecx, 2
sar eax, 2
mov dword [esp + 0x24], ebx
cmp ecx, eax
jbe 0x10045f37
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], 0x3e4b
cmp dword [esp + 0x1c], 0x40bd
jle 0x10045eec
mov esi, ebx
mov dword [esp + 0x18], ebx
mov edi, ebx
mov ecx, ebx
mov dword [esp + 0x14], ebx
mov eax, edi
mov dword [esp + 0x10], ebx
cdq
idiv ecx
lea eax, [edx + esi]
mov dword [esp + 0x40], eax
mov esi, eax
mov eax, esi
mov ecx, 0x1007bbb8
xor eax, ebx
cdq
push edx
push eax
call fcn.1000cbc0
inc ebx
cmp ebx, 0x7451
jl 0x10045ea4
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x14], ecx
push 0
pop ebx
cmp ecx, 0xe31
jl 0x10045e92
inc edi
cmp edi, 0x6022
jl 0x10045e8c
inc esi
mov dword [esp + 0x18], esi
cmp esi, 0x6507
jl 0x10045e8a
mov eax, dword [esp + 0x6c]
sub eax, dword [esp + 0x68]
mov esi, dword [esp + 0x24]
sar eax, 2
cmp eax, esi
jge 0x10045f1c
sub esi, eax
lea eax, [esp + 0x80]
mov dword [esp + 0x80], ebx
push eax
lea ecx, [esp + 0x6c]
call fcn.10048e8f
dec esi
jne 0x10045f01
cmp dword [esp + 0x1c], 0x3dc9
jge 0x10045f7d
mov edx, str.jnlpugh_tvoljbotg_qolhxbuyo_jtysd_qnbfpg_cmmkeys_byavbyhki_rnnnhjn_nplqqtlrr_mpdru
mov ecx, 0x1007bbb8
call fcn.1000ee07
jmp 0x10045f7d
lea eax, [esp + 0x24]
mov dl, 1
push eax
push ecx
lea ecx, [esp + 0x70]
call fcn.1004596d
mov eax, dword [esp + 0x80]
sub eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x2c]
sar eax, 2
pop ecx
pop ecx
cmp eax, esi
jge 0x10045f7d
sub esi, eax
lea eax, [esp + 0x84]
mov dword [esp + 0x84], ebx
push eax
lea ecx, [esp + 0x78]
call fcn.10048e8f
dec esi
jne 0x10045f62
cmp dword [esp + 0x24], 0
mov esi, ebx
mov dword [esp + 0x1c], ebx
jle 0x10046091
cmp dword [esp + 0x44], 0
jne 0x10046091
mov eax, dword [esp + 0x74]
mov ecx, dword [eax + esi*4]
mov eax, dword [esp + 0x68]
cmp ecx, dword [eax + esi*4]
jle 0x10046053
push ebx
push 0x38b5
lea eax, [esp + 0x4c]
mov edx, 0x5b3e
push eax
push 1
push 1
push 0x210b
push 0xdc4
mov ecx, 0x645b
call fcn.10045cd0
mov dword [esp + 0x34], 0x2651
add esp, 0x1c
cmp dword [esp + 0x18], 0x2924
jle 0x1004603a
mov edi, ebx
mov ecx, ebx
mov dword [esp + 0x14], ebx
mov eax, edi
mov dword [esp + 0x10], ebx
cdq
idiv ecx
mov esi, edx
mov ecx, ebx
mov eax, esi
sar eax, cl
mov ecx, 0x1007bbb8
cdq
push edx
push eax
call fcn.1000cbc0
inc ebx
cmp ebx, 0x7dbc
jl 0x10045ffd
mov ecx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x14], ecx
push 0
pop ebx
cmp ecx, 0x7cd1
jl 0x10045ff2
inc edi
cmp edi, 0x1fc1
jl 0x10045fec
mov esi, dword [esp + 0x1c]
cmp dword [esp + 0x18], 0x257e
jge 0x10046053
mov edx, str.phiwc_swhjtvv_qjasmdjfk_jgvmbo_qrl_wlij_uybq_ulws_ikyixx_vncofuwt_hel
mov ecx, 0x1007bbb8
call fcn.1000ee07
mov eax, dword [esp + 0x74]
mov ecx, dword [eax + esi*4]
mov eax, dword [esp + 0x68]
cmp ecx, dword [eax + esi*4]
jge 0x10046082
push 1
push 0x505
push ecx
push 0x2bbc
push 0x5a45
push ecx
lea ecx, [esp + 0x5c]
call fcn.10045b7e
add esp, 0x18
inc esi
mov dword [esp + 0x1c], esi
cmp esi, dword [esp + 0x24]
jl 0x10045f8e
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
mov dword [ecx], eax
lea ecx, [esp + 0x68]
call fcn.10049197
lea ecx, [esp + 0x74]
jmp 0x100464ec
mov dword [esp + 0x14], 0x2f85
cmp dword [esp + 0x14], 0x316e
jle 0x100460ef
call dword [sym.imp.GDI32.dll_GdiFlush]
mov esi, ebx
mov edi, ebx
mov eax, esi
mov ecx, 0x1007bbb8
cdq
idiv edi
mov eax, edx
cdq
push edx
push eax
call fcn.1000cbc0
inc edi
cmp edi, 0x5ad8
jl 0x100460c9
inc esi
cmp esi, 0x5b68
jl 0x100460c7
push ebx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
cmp dword [esp + 0x14], 0x2c09
jge 0x1004610f
mov edx, str.avbfsxo_dbscumg_ihdwds_ony_ckxgbrkfj
mov ecx, 0x1007bbb8
call fcn.1000ee07
cmp dword [esp + 0x10], 0x5731
jge 0x100464f1
push str.tsslppe_ohh_bvv_gstk
call fcn.1004d87c
pop ecx
jmp 0x100464f1
cmp byte [ebp + 0x10], 0
je 0x10046141
mov eax, dword [ebp + 0x18]
mov dword [eax], 1
jmp 0x100464f1
mov dword [esp + 0x14], 0x5ae0
cmp dword [esp + 0x14], 0x5e6b
push 0
pop ebx
jle 0x100461a9
mov esi, ebx
mov dword [esp + 0x10], ebx
mov edi, esi
mov esi, 0xaa8
mov eax, edi
lea ecx, [esp + 0xe8]
cdq
push edx
push eax
call fcn.100019c5
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1004617e
mov eax, dword [eax]
push eax
call fcn.1004d87c
pop ecx
push ebx
push 1
lea ecx, [esp + 0xf0]
call fcn.1000d197
dec edi
dec esi
jne 0x10046163
mov esi, dword [esp + 0x10]
inc esi
mov dword [esp + 0x10], esi
cmp esi, 0x5955
jl 0x1004615c
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x124], 2
cmp dword [esp + 0x14], 0x57d4
jge 0x100461de
push str.hdtu_nrtiasj_mmq_cyimsbrk_wjfbsj_mglu_dfaiqkke_kffw_fxatwnrgx_fvwm
call fcn.1004d87c
pop ecx
mov edi, dword [ebp + 8]
cmp dword [edi + 0x10], ebx
je 0x1004645b
push 0x2e
pop eax
push 2
mov ecx, ebx
mov byte [esp + 0x3c], bl
mov dword [esp + 0x3d], 0x938404af
mov word [esp + 0x41], 0xb239
mov word [esp + 0x30], ax
pop esi
mov dword [esp + 0x58], ecx
cmp esi, 2
jne 0x1004621e
push 5
pop ecx
push ecx
mov dword [esp + 0x5c], ecx
pop esi
jmp 0x10046276
movzx edx, byte [esp + esi + 0x39]
mov eax, esi
sub eax, ecx
push ebx
push 0x6db3
push 0xf71
movzx eax, byte [esp + eax + 0x42]
push 1
push 0x3ff8
push 1
movzx eax, word [esp + eax*2 + 0x44]
mov ecx, eax
and eax, edx
or ecx, edx
mov edx, 0x72e5
sub ecx, eax
movzx eax, byte [esp + esi + 0x50]
push 0x12c6
push 0x4d6c
mov word [esp + eax*2 + 0x4c], cx
lea ecx, [esp + 0x78]
call fcn.10047ae2
mov ecx, dword [esp + 0x78]
add esp, 0x20
add esi, 2
cmp esi, 7
jb 0x1004620e
xor eax, eax
mov dword [esp + 0xa8], 7
mov word [esp + 0x2e], ax
lea ecx, [esp + 0x94]
mov word [esp + 0x94], ax
lea eax, [esp + 0x2c]
push eax
mov dword [esp + 0xa8], ebx
call fcn.1000d283
lea eax, [esp + 0x94]
mov byte [esp + 0x124], 3
push eax
mov edx, edi
lea ecx, [esp + 0x60]
call fcn.10043e7e
pop ecx
push ebx
push 1
lea ecx, [esp + 0x9c]
mov byte [esp + 0x12c], 5
call fcn.1000d3a5
mov eax, dword [esp + 0x60]
sub eax, dword [esp + 0x5c]
push 0x18
cdq
pop ecx
idiv ecx
mov dword [esp + 0x2c], ebx
test eax, eax
jne 0x10046428
push 0x2d
pop eax
push 2
mov ecx, ebx
mov byte [esp + 0x34], bl
mov dword [esp + 0x35], 0x9e60438
mov word [esp + 0x39], 0x64dd
mov word [esp + 0x2c], ax
pop esi
mov dword [esp + 0x50], ecx
cmp esi, 2
jne 0x10046331
push 5
pop ecx
push ecx
mov dword [esp + 0x54], ecx
pop esi
jmp 0x10046373
movzx edx, byte [esp + esi + 0x31]
mov eax, esi
sub eax, ecx
movzx eax, byte [esp + eax + 0x2e]
movzx ecx, word [esp + eax*2 + 0x28]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [esp + esi + 0x30]
add ecx, edx
mov word [esp + eax*2 + 0x28], cx
lea eax, [esp + 0x50]
push eax
push 1
sub esp, 0xc
push 0x6abe
call fcn.10045151
mov ecx, dword [esp + 0x68]
add esp, 0x18
add esi, 2
cmp esi, 7
jb 0x10046321
xor eax, eax
mov dword [esp + 0xc0], 7
mov word [esp + 0x2a], ax
lea ecx, [esp + 0xac]
mov word [esp + 0xac], ax
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0xc0], ebx
call fcn.1000d283
lea eax, [esp + 0xac]
mov byte [esp + 0x124], 6
push eax
mov edx, edi
lea ecx, [esp + 0xc8]
call fcn.10043e7e
pop ecx
mov esi, eax
lea eax, [esp + 0x5c]
cmp eax, esi
je 0x10046401
mov ecx, eax
call fcn.100490be
mov eax, dword [esi]
mov dword [esp + 0x5c], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x60], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x64], eax
mov byte [esp + 0x57], bl
mov byte [esp + 0x4f], bl
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
lea ecx, [esp + 0xc4]
call fcn.100490be
push ebx
push 1
lea ecx, [esp + 0xb4]
mov byte [esp + 0x12c], 5
call fcn.1000d3a5
mov dword [esp + 0x28], ebx
push ecx
push ecx
push 0x662e
push 0x2cd7
lea eax, [esp + 0x98]
push eax
push 1
lea ecx, [esp + 0x74]
call fcn.10045256
add esp, 0x18
mov byte [esp + 0x124], 2
lea ecx, [esp + 0x5c]
call fcn.100490be
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x88]
push eax
call fcn.10048ee7
mov dword [esp + 0x48], 0x1b03
cmp dword [esp + 0x48], 0x1d0b
jle 0x100464e5
mov esi, ebx
mov edi, ebx
mov eax, ebx
mov dword [esp + 0x10], ebx
and eax, edi
lea ecx, [esp + 0x100]
and eax, esi
cdq
push edx
push eax
call fcn.100019c5
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x100464a5
mov eax, dword [eax]
push eax
call fcn.1004d87c
pop ecx
push ebx
push 1
lea ecx, [esp + 0x108]
call fcn.1000d197
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, 0x72e2
jl 0x10046488
inc edi
cmp edi, 0x48ed
jl 0x10046482
inc esi
cmp esi, 0x2563
jl 0x10046480
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
lea ecx, [esp + 0x88]
call fcn.10049197
mov ecx, dword [esp + 0x11c]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret