Function at 0x100380bd
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1006365f
call fcn.10061bc4
sub esp, 0x254
cmp byte [ebp + 8], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov esi, ecx
je 0x10038c1f
cmp byte [ebp + 0x28], 0
je 0x10038211
mov dword [ebp - 0x18], 0x43a5
xor ebx, ebx
cmp dword [ebp - 0x18], 0x4649
jle 0x10038164
push 0x1e6
push ebx
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
xor esi, esi
mov edi, ebx
inc esi
mov ecx, ebx
mov dword [ebp + 8], ebx
mov eax, edi
sar eax, cl
lea ecx, [ebp - 0x20c]
cdq
push edx
push eax
call fcn.10002a23
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1003812d
mov eax, dword [eax]
push eax
call fcn.10049a06
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x20c]
call fcn.10002ff9
mov ecx, dword [ebp + 8]
inc ecx
mov dword [ebp + 8], ecx
cmp ecx, 0x10e6
jl 0x10038111
inc edi
cmp edi, 0x5a4b
jl 0x1003810c
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.GDI32.dll_ExtCreatePen]
cmp dword [ebp - 0x18], 0x40fb
jge 0x10038178
push str.hgecvpo_csxdxsnj_jsaoa_wdinhyeho_hzi_sgmd_pdsy_bql_qvwf_frotfr_oju_ddft_xcicxvy
call fcn.10049a06
pop ecx
mov ecx, dword [ebp + 0x24]
or dword [ebp - 4], 0xffffffff
push 0x18
pop esi
mov eax, dword [ecx + 4]
sub eax, dword [ecx]
cdq
idiv esi
mov dword [ebp + 8], eax
test eax, eax
jle 0x1003920c
push 2
mov esi, ebx
pop edi
mov edx, dword [ecx]
mov ecx, dword [ebp + 0x2c]
add edx, esi
call fcn.10036e4a
test al, al
je 0x100381ef
mov eax, dword [ebp + 0xc]
sub esp, 0x18
mov ecx, esp
mov eax, dword [eax]
add eax, esi
push eax
call fcn.10011821
lea ecx, [ebp - 0x140]
call fcn.10036183
add esp, 0x18
lea ecx, [ebp - 0x140]
mov dword [ebp - 4], edi
call fcn.10037d47
test eax, eax
je 0x10038201
cmp eax, edi
je 0x10038201
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x140]
call fcn.10030737
inc ebx
add esi, 0x18
cmp ebx, dword [ebp + 8]
jge 0x1003920c
mov ecx, dword [ebp + 0x24]
jmp 0x1003819a
lea ecx, [ebp - 0x140]
call fcn.10030737
jmp 0x1003920c
push edx
lea ecx, [ebp - 0x164]
call fcn.10011821
sub esp, 0xc
mov dword [ebp - 4], 3
lea eax, [ebp - 0x38]
mov dword [ebp - 0x38], 0x8901
mov dword [ebp - 0x94], 0x49c9fb37
xor dl, dl
mov dword [ebp + 8], 0xfffffff9
push eax
push ecx
mov ecx, 0x6da2
call fcn.1003750c
mov eax, dword [ebp - 0x94]
add esp, 0x14
mov dword [ebp + 8], eax
cmp dword [ebp - 0x38], 0x8d383303
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0x2fd2
mov eax, dword [ebp - 0x38]
setne cl
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x38]
setne dl
xor ecx, ecx
xor ebx, ebx
inc ebx
cmp edx, ebx
setge cl
xor edx, edx
add ecx, 0xfffffffc
cmp eax, ecx
mov ecx, dword [ebp + 8]
setge dl
cmp edx, ebx
sbb eax, eax
neg eax
sub ecx, eax
dec ecx
neg ecx
sbb ecx, ecx
or edi, 0xffffffff
inc ecx
xor ebx, ebx
cmp ecx, edi
jge 0x100383a9
cmp dword [ebp - 0x38], ebx
je 0x100383a9
cmp dword [ebp + 8], ebx
je 0x100383a9
mov byte [ebp + 0xb], bl
cmp byte [ebp + 0xb], bl
je 0x100382d1
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SetCommState]
mov dword [ebp - 0x20], 0x7efc
cmp dword [ebp - 0x20], 0x7fd1
jle 0x10038359
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualQueryEx]
mov eax, ebx
xor esi, esi
mov dword [ebp + 8], eax
inc esi
mov ecx, ebx
mov dword [ebp - 0x1c], ebx
mov edx, ebx
mov dword [ebp - 0x18], ebx
add eax, ecx
lea ecx, [ebp - 0x224]
and eax, edx
cdq
push edx
push eax
call fcn.10002a23
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10038319
mov eax, dword [eax]
push eax
call fcn.10049a06
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x224]
call fcn.10002ff9
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp + 8]
inc edx
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x18], edx
cmp edx, 0x558c
jl 0x100382fd
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, 0x3aba
jl 0x100382f8
inc eax
mov dword [ebp + 8], eax
cmp eax, 0x5a80
jl 0x100382f3
mov byte [ebp - 0x25], bl
cmp dword [ebp - 0x20], 0x7d9b
jge 0x10038370
push str.xbdfht_fzzjwpxuj_ytaeqkusc
call fcn.10049a06
pop ecx
xor eax, eax
mov dword [ebp - 4], 3
inc eax
mov edx, 0x73cf
push eax
push 0x48e7
push eax
push ebx
push 0x13ae
push 0x21d1
lea eax, [ebp - 0x25]
mov ecx, 0xca0
push eax
push 0x6613
call fcn.10035fc7
add esp, 0x20
jmp 0x1003841a
lea eax, [ebp - 0x110]
mov dword [ebp - 0x110], 0x8cd54673
push eax
lea eax, [ebp - 0xdc]
mov dword [ebp - 0xe0], 0x279e56e6
push eax
push ecx
lea eax, [ebp - 0xe0]
mov dword [ebp - 0xe8], 0xdf47f28a
push eax
lea eax, [ebp - 0x94]
mov dword [ebp - 0xdc], 0xca862934
push eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0xf0], 0x41adf890
push eax
lea eax, [ebp - 0xe8]
xor dl, dl
push eax
lea eax, [ebp - 0xf0]
push eax
push ecx
push 0x7685
call fcn.10035755
add esp, 0x28
push ecx
push dword [ebp + 0x30]
lea ecx, [ebp - 0x164]
call fcn.1003943b
xor esi, esi
mov dword [ebp - 0x54], eax
inc esi
lea ecx, [ebp - 0x128]
push esi
call fcn.10001ed7
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x1a8]
mov dword [ebp - 0x180], 8
mov dword [ebp - 0x19c], 0x53d42374
push 2
call fcn.10001ed7
mov byte [ebp - 4], 7
mov dword [ebp + 8], 0x7647f1a
mov dword [ebp + 8], 0xfffffffc
mov dword [ebp + 8], edi
mov dword [ebp - 0x14], 0x4ada
cmp dword [ebp - 0x14], 0x4c89
jle 0x10038509
mov dword [ebp - 0x18], ebx
mov ecx, ebx
mov dword [ebp + 8], ebx
mov eax, ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
cdq
idiv dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
add eax, ecx
lea ecx, [ebp - 0x23c]
or eax, edx
cdq
push edx
push eax
call fcn.10002a23
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x100384bc
mov eax, dword [eax]
push eax
call fcn.10049a06
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x23c]
call fcn.10002ff9
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + 8]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 0x7f8d
mov eax, dword [ebp - 0x20]
jl 0x10038499
inc eax
mov dword [ebp - 0x20], eax
cmp eax, 0x4de2
jl 0x10038496
inc ecx
mov dword [ebp + 8], ecx
cmp ecx, 0x52a9
jl 0x10038491
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x49e4
jl 0x1003848c
mov dword [ebp + 8], 5
cmp dword [ebp - 0x14], 0x4895
jge 0x10038524
push str.apmlyca_hrieuvwim_mxgmgiskw_oqzduu_odvdx_hmaumyst_gmzmje_zcvxjr_allidfje
call fcn.10049a06
pop ecx
push 0xfffffffffffffff8
pop esi
push ecx
push 0x24f8
push 0x5ef1
lea eax, [ebp - 0x2c]
mov dword [ebp - 4], 7
push eax
push ecx
mov dword [ebp + 8], 0xc6548aa
xor dl, dl
push ecx
mov dword [ebp + 8], edi
lea ecx, [ebp - 0x128]
mov dword [ebp - 0x1b0], esi
call fcn.10037178
add esp, 0x18
lea eax, [ebp - 0x2c]
lea edx, [ebp - 0x1a8]
push eax
push ecx
xor cl, cl
call fcn.1003449e
pop ecx
pop ecx
mov dword [ebp - 0x2c], ebx
jmp 0x10038589
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x248], 0xec0dcee0
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 3
jl 0x10038578
mov eax, dword [ebp - 0x128]
lea ecx, [ebp - 0x1a8]
mov dword [eax], 0xffffffea
call fcn.10001f5a
lea ecx, [ebp - 0x128]
mov byte [ebp - 4], 3
call fcn.10001f5a
cmp dword [ebp - 0x54], edi
je 0x100385f7
sub esp, 0x10
lea eax, [ebp - 0x54]
mov edx, 0x6c21
push 0x3ed9
push ecx
push 0x5fcd
push eax
push 0x59db
push ebx
push 0x32f8
push ecx
push ecx
push 0x3f09
lea eax, [ebp - 0x164]
push 0x6ca3
push eax
call fcn.100354d7
add esp, 0x40
movdqa xmm0, xmmword [str._b_b_b_b_t_t_t_t]
lea eax, [ebp - 0x1d8]
mov dword [ebp + 8], ebx
lea ecx, [ebp - 0x11c]
mov dword [ebp + 8], esi
mov dword [ebp + 8], 0x62bb2c59
mov dword [ebp + 8], 0x2f1e5c8a
push dword [ebp + 8]
movdqu xmmword [ebp - 0x1e8], xmm0
push eax
lea eax, [ebp - 0x1e8]
mov dword [ebp - 0x11c], ebx
push eax
push ebx
mov dword [ebp - 0x118], ebx
mov dword [ebp - 0x114], ebx
call fcn.10001fc0
xor ecx, ecx
mov byte [ebp - 4], 0xa
mov dword [ebp + 8], ebx
inc ecx
jmp 0x10038660
mov eax, dword [ebp + 8]
mov dword [ebp + eax*4 - 0x3c], ecx
inc dword [ebp + 8]
cmp dword [ebp + 8], ecx
jl 0x10038656
mov dword [ebp + 8], ebx
push 2
pop edi
cmp dword [ebp + 8], ebx
jg 0x1003870b
xor esi, esi
inc esi
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x14], 0xcedb7758
mov dword [ebp - 0x14], 0x78cca699
mov eax, dword [ebp + 8]
cmp dword [ebp + eax*4 - 0x3c], ebx
je 0x100386bc
mov eax, dword [ebp + 8]
xor edx, edx
mov ecx, dword [ebp + eax*4 - 0x3c]
mov eax, dword [ebp - 0x3c]
cmp eax, ecx
mov eax, dword [ebp + 8]
setg dl
sub eax, 0xd035
imul eax, edx
mov dword [ebp - 0x68], eax
mov eax, dword [ebp + 8]
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x74], ebx
mov edx, 0x4e3e
mov eax, dword [ebp - 0x74]
mov eax, dword [ebp + 8]
push ebx
push 0x5b0
push ebx
mov eax, dword [ebp + eax*4 - 0x3c]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp + 8]
push esi
mov dword [ebp + eax*4 - 0x3c], ecx
lea eax, [ebp - 0x68]
push eax
push 0x7bad
lea eax, [ebp - 0x74]
mov ecx, 0x4454
push 0x47d9
push eax
call fcn.10035fc7
add esp, 0x20
inc dword [ebp + 8]
cmp dword [ebp + 8], ebx
jle 0x10038677
lea ecx, [ebp - 0x11c]
mov byte [ebp - 4], 3
call fcn.10001f5a
xor eax, eax
lea ecx, [ebp - 0x54]
inc eax
mov edx, 0x114a
push eax
push ecx
push ebx
push eax
push 0x464d
push dword [ebp + 0x30]
lea ecx, [ebp - 0x164]
push 0x4f69
push 0x6f95
call fcn.10035fc7
add esp, 0x20
mov dword [ebp - 0x34], 0xffffffff
xor esi, esi
mov dword [ebp - 0x24], 0xaafbebf0
inc esi
mov dword [ebp - 0x18], 0xaaf19195
lea ecx, [ebp - 0xc4]
push esi
call fcn.10001ed7
mov byte [ebp - 4], 0xb
mov dword [ebp - 0x7c], 6
mov dword [ebp - 0xc8], 0xae792f69
mov dword [ebp - 0x108], 0xa6c6106a
mov dword [ebp - 0xd8], esi
mov dword [ebp - 0x104], 0x552b
mov dword [ebp - 0x30], ebx
jmp 0x100387b2
mov eax, dword [ebp - 0x30]
mov dword [ebp + eax*4 - 0x1f4], 0x32a2
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 3
jl 0x100387a1
lea eax, [ebp - 0xc4]
push eax
push ecx
push ecx
push ebx
lea ecx, [ebp - 0x30]
call fcn.1003587a
add esp, 0x10
mov dword [ebp - 0x34], ebx
cmp dword [ebp - 0x34], 7
je 0x10038b41
push edi
lea ecx, [ebp - 0x90]
call fcn.10001ed7
push edi
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0xc
call fcn.10001ed7
push ecx
push 0x2f62
push 0x247d
push 0x6669
lea eax, [ebp - 0x90]
mov byte [ebp - 4], 0xd
push eax
push ebx
push ecx
push 0x6817
push 0x3609
mov dword [ebp - 0x70], ebx
mov edx, 0x3349
push ecx
mov dword [ebp - 0x6c], 0xfc518f82
lea ecx, [ebp - 0xf8]
mov dword [ebp - 0xb4], 0xffffffff
call fcn.1003438c
add esp, 0x24
lea eax, [ebp - 0xa4]
xor dl, dl
push eax
lea eax, [ebp - 0xf8]
push eax
push ecx
call fcn.1003458b
mov eax, dword [ebp - 0x90]
xor edx, edx
add esp, 0x10
inc edx
mov dword [eax], edi
mov dword [ebp - 0x14], 0xdf2e
cmp dword [eax], ebx
je 0x100388b2
mov byte [ebp + 0xb], bl
cmp byte [ebp + 0xb], 0
je 0x100388e0
push 0x3af
push 0x15e
push 0x662d
push 0x5014
push edx
push ebx
push edx
push 0x247a
push 0x1465
mov edx, 0x7954
mov ecx, 0x3489
call fcn.10036bf3
add esp, 0x24
jmp 0x100388e0
push ecx
push ecx
lea eax, [ebp - 0xb8]
mov dword [ebp - 0xb8], edx
push eax
sub esp, 0x10
lea edx, [ebp - 0xa4]
push 0x769c
sub esp, 0x1c
push ebx
push 0x6a9a
call fcn.100358c1
add esp, 0x44
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp eax, 0xed16
mov eax, dword [ebp - 0x1ec]
setle cl
xor esi, esi
xor edx, edx
inc esi
cmp ecx, esi
setg dl
xor ecx, ecx
cmp eax, edx
setl cl
mov dword [ebp - 0x24], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x70]
imul eax, dword [esi + 4]
cmp eax, 0x94be3d0e
setne cl
xor edx, edx
inc edx
cmp edx, ecx
sbb eax, eax
inc eax
cmp eax, 0x24ad
jle 0x10038936
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x90]
mov dword [esi + 4], 0x9b8db370
dec dword [eax]
jns 0x10038869
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x70], ebx
jne 0x1003895a
mov esi, ebx
cmp dword [ebp - 0x18], ebx
je 0x1003895c
mov esi, edx
mov edx, dword [ebp - 0x24]
xor ecx, ecx
mov eax, dword [ebp - 0xc4]
mov dword [eax], edx
mov eax, dword [ebp - 0x18]
cmp eax, edx
setge cl
mov dword [ebp - 0x7c], ecx
cmp dword [ebp - 0x7c], esi
mov ecx, dword [ebp - 0x90]
jne 0x10038984
cmp dword [ecx + 4], ebx
je 0x1003898f
cmp dword [ecx], ebx
je 0x1003898f
xor esi, esi
inc esi
mov edx, esi
jmp 0x10038994
xor esi, esi
mov edx, ebx
inc esi
xor eax, eax
cmp edx, dword [ecx]
setl al
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x24]
sub ecx, eax
mov eax, dword [ebp - 0xa4]
cmp ecx, 5
sbb ecx, ecx
xor edx, edx
neg ecx
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x18]
cmp ecx, eax
mov eax, dword [ebp - 0x90]
sete dl
xor ecx, ecx
imul edx, dword [eax + 4]
mov eax, dword [ebp - 0x24]
cmp edx, eax
setne cl
cmp ecx, 0x9395830
jne 0x10038ad9
mov dword [ebp - 0x100], esi
mov dword [ebp - 0x1c], 0x93f
cmp dword [ebp - 0x1c], 0xa38
jle 0x10038a61
mov edx, ebx
mov dword [ebp + 8], ebx
mov eax, ebx
mov dword [ebp - 0x20], ebx
mov ecx, ebx
mov dword [ebp - 0x14], ebx
shl eax, cl
lea ecx, [ebp - 0x260]
or eax, edx
cdq
push edx
push eax
call fcn.10002a23
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10038a21
mov eax, dword [eax]
push eax
call fcn.10049a06
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x260]
call fcn.10002ff9
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
inc ecx
mov edx, dword [ebp + 8]
mov dword [ebp - 0x14], ecx
cmp ecx, 0x1ecd
jl 0x10038a05
inc eax
mov dword [ebp - 0x20], eax
cmp eax, 0x194d
jl 0x10038a00
inc edx
mov dword [ebp + 8], edx
cmp edx, 0x6bda
jl 0x100389fb
push ecx
push ecx
lea eax, [ebp - 0x100]
mov edx, 0x5251
push eax
lea eax, [ebp - 0xc8]
push eax
lea eax, [ebp - 0xa4]
push eax
push ecx
lea eax, [ebp - 0x108]
push eax
lea eax, [ebp - 0xd8]
push eax
push 0x634a
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0xc4]
push eax
push ecx
push ebx
lea ecx, [ebp - 0x6c]
call fcn.10035dc8
add esp, 0x44
cmp dword [ebp - 0x1c], 0x6ff
jge 0x10038ad0
push str.zxbjrgmaw_jrxjm_fvklybkjd_hhz_mvowa_lmvth_mojbf
call fcn.10049a06
pop ecx
mov dword [ebp - 4], 0xd
jmp 0x10038b1f
push ecx
lea eax, [ebp - 0x104]
mov dword [ebp - 0xe4], 0xffffffff
push eax
lea eax, [ebp - 0xc4]
push eax
lea eax, [ebp - 0xe4]
push eax
push 0x6919
push esi
push ecx
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0xa4]
push eax
push ecx
lea edx, [ebp - 0x90]
mov ecx, 0x494c
call fcn.1003438c
add esp, 0x28
lea ecx, [ebp - 0xa4]
call fcn.10001f5a
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0xb
call fcn.10001f5a
inc dword [ebp - 0x34]
jmp 0x100387d0
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 3
call fcn.10001f5a
cmp dword [ebp - 0x54], 0xffffffff
je 0x10038b78
push ecx
lea eax, [ebp - 0x164]
mov dl, 1
push eax
lea eax, [ebp - 0x54]
push eax
push 0xf9
push ecx
push ecx
mov ecx, 0x4d0d
call fcn.10037178
add esp, 0x18
mov dword [ebp + 8], 0x3396
cmp dword [ebp + 8], 0x33a8
jle 0x10038bb9
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov esi, ebx
mov edi, ebx
mov eax, edi
mov ecx, 0x1007f138
xor eax, esi
cdq
push edx
push eax
call fcn.10002c1c
inc edi
cmp edi, 0xf28
jl 0x10038b96
inc esi
cmp esi, 0xe75
jl 0x10038b94
lea eax, [ebp - 0x164]
cmp dword [ebp + 0x10], eax
je 0x10038bd0
mov ecx, dword [ebp + 0x10]
push 0xffffffffffffffff
push ebx
push eax
call fcn.100121d8
mov byte [ebp - 4], 0x10
cmp dword [ebp + 8], 0x3034
jge 0x10038c0a
mov edx, str.lpnskjd_xxb_ybwehlyve_ffocbyop_jzxyrw_qxlcpde_kblrukzy_qbuaambfz_mmcu_nqst_ftqroylc_lctbio_mmqzdtehu
mov ecx, 0x1007f138
call fcn.100045d3
jmp 0x10038c0a
xor eax, eax
lea ecx, [ebp - 0x164]
inc eax
push ebx
push eax
call fcn.1001231a
jmp 0x1003920c
cmp byte [ebp + 0x1c], 0
je 0x100391ef
mov dword [ebp + 8], 0xad313dd3
mov dword [ebp - 0xf4], 0xfffffff7
mov dword [ebp + 8], 0x13c3
cmp dword [ebp + 8], 0x100f
jge 0x10038d6a
lea eax, [ebp - 0x44]
xor esi, esi
push eax
push 0x1006dfec
inc esi
call fcn.10049dfd
xor ebx, ebx
jmp 0x10038d5b
jle 0x10038c7a
mov ecx, 0x100808f0
mov edi, edx
mov eax, dword [ecx]
lea ecx, [ecx + 0xc]
mov dword [ecx - 8], eax
dec edi
jne 0x10038c6f
mov ecx, ebx
test edx, edx
jle 0x10038c8a
call fcn.10037e58
inc ecx
cmp ecx, edx
jl 0x10038c80
lea eax, [ebp - 0x84]
push eax
push 0x1006dfec
call fcn.10049dfd
mov edx, dword [ebp - 0x84]
mov edi, ebx
pop ecx
pop ecx
test edx, edx
jle 0x10038d03
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x64]
push eax
push str._d__d
call fcn.10049dfd
mov eax, dword [ebp - 0x64]
lea ecx, [ebp - 0x40]
add esp, 0xc
dec eax
dec dword [ebp - 0x40]
mov dword [ebp - 0x64], eax
push ecx
imul ecx, eax, 0xc
add ecx, 0x100808f0
call fcn.100394f4
imul ecx, dword [ebp - 0x40], 0xc
lea eax, [ebp - 0x64]
push eax
add ecx, 0x100808f0
call fcn.100394f4
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x64]
call fcn.10037e8b
mov edx, dword [ebp - 0x84]
inc edi
cmp edi, edx
jl 0x10038ca9
xor ecx, ecx
inc ecx
cmp dword [0x10080294], ecx
jg 0x10038d3f
mov eax, dword [ebp - 0x44]
sub eax, edx
cmp eax, ecx
jne 0x10038d3f
mov ecx, dword [ebp - 0x44]
call fcn.10038008
test al, al
mov edx, str.not
mov ecx, 0x1006a9d5
cmove ecx, edx
push ecx
push esi
push str.Graph__d_is__sa_caterpillar._n
call fcn.10049a06
add esp, 0xc
jmp 0x10038d4c
push esi
push str.Graph__d_is_not_a_caterpillar._n
call fcn.10049a06
pop ecx
pop ecx
lea eax, [ebp - 0x44]
inc esi
push eax
push 0x1006dfec
call fcn.10049dfd
mov edx, dword [ebp - 0x44]
pop ecx
pop ecx
test edx, edx
jne 0x10038c66
jmp 0x10038d6c
xor ebx, ebx
mov dword [ebp - 0x10c], 0xffffffff
mov dword [ebp - 0xec], 7
mov dword [ebp + 8], 0xfffffff4
jmp 0x10038dd6
mov dword [ebp - 0x80], 0xffffffff
lea ecx, [ebp - 0x80]
mov dword [ebp - 0xfc], 0xfffffffa
mov edx, 0x4213
push ebx
call fcn.10037da8
push 1
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0xfc]
push eax
push ecx
lea eax, [ebp - 0xec]
push eax
lea eax, [ebp - 0x10c]
push eax
lea eax, [ebp - 0xf4]
push eax
call fcn.10036a9d
add esp, 0x20
inc dword [ebp + 8]
cmp dword [ebp + 8], 0xe
jl 0x10038d89
push dword [ebp + 8]
movdqa xmm0, xmmword [0x10070e40]
lea eax, [ebp - 0x1c8]
push eax
lea eax, [ebp - 0x1d8]
mov dword [ebp - 0xd4], ebx
push eax
push ebx
lea ecx, [ebp - 0xd4]
mov dword [ebp - 0xd0], ebx
movdqu xmmword [ebp - 0x1d8], xmm0
mov dword [ebp - 0xcc], ebx
call fcn.10001fc0
push 2
lea ecx, [ebp - 0x17c]
mov dword [ebp - 4], 0x12
call fcn.10001ed7
push ecx
push ecx
lea eax, [ebp - 0x1ac]
mov byte [ebp - 4], 0x13
push eax
lea ecx, [ebp - 0x17c]
call fcn.1003752e
mov eax, dword [ebp - 0xd4]
lea ecx, [ebp - 0x17c]
add esp, 0xc
mov dword [eax], ebx
call fcn.10001f5a
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xd4]
call fcn.10001f5a
push 0x7c
pop eax
push 2
pop edi
mov ecx, ebx
mov dword [ebp - 0x50], 0xcb03ad00
mov word [ebp - 0x4c], 0x85ad
mov esi, edi
mov word [ebp - 0x48], ax
mov dword [ebp - 0x78], ecx
cmp esi, edi
jne 0x10038e98
push 4
pop ecx
push ecx
mov dword [ebp - 0x78], ecx
pop esi
jmp 0x10038ef5
movzx edx, byte [ebp + esi - 0x4f]
mov eax, esi
sub eax, ecx
push 0x280b
push 0x1ec5
movzx eax, byte [ebp + eax - 0x52]
movzx ecx, word [ebp + eax*2 - 0x48]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [ebp + esi - 0x50]
add ecx, edx
mov dl, 1
push ecx
push 0x2915
push 0x499
push 0x1c92
push 0x54c9
push 0x68c9
mov word [ebp + eax*2 - 0x48], cx
lea eax, [ebp - 0x78]
push ecx
push eax
call fcn.10035755
mov ecx, dword [ebp - 0x78]
add esp, 0x28
add esi, edi
cmp esi, 6
jb 0x10038e8a
xor eax, eax
mov dword [ebp - 0x1b4], 7
mov word [ebp - 0x46], ax
lea ecx, [ebp - 0x1c8]
mov word [ebp - 0x1c8], ax
xor ebx, ebx
lea eax, [ebp - 0x48]
mov dword [ebp - 0x1b8], ebx
push eax
call fcn.1002a447
mov edx, dword [ebp + 0x14]
lea eax, [ebp - 0x1c8]
push eax
lea ecx, [ebp - 0x170]
mov dword [ebp - 4], 0x14
call fcn.1003541c
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x1c8]
mov byte [ebp - 4], 0x16
call fcn.1001231a
mov dword [ebp + 8], 0xe1f6f084
lea ecx, [ebp - 0x14c]
mov dword [ebp - 0x14], 0x160cbeb9
mov dword [ebp - 0x14], 9
push edi
call fcn.10001ed7
mov byte [ebp - 4], 0x17
mov dword [ebp - 0x14], 0x47ce
cmp dword [ebp - 0x14], 0x4b2c
jle 0x10038fbc
mov esi, ebx
mov dword [ebp - 0x18], ebx
mov eax, esi
mov ecx, 0x1007f138
cdq
idiv ebx
mov eax, edx
cdq
push edx
push eax
call fcn.10002c1c
inc ebx
cmp ebx, 0x10d4
jl 0x10038f93
inc esi
push 0
pop ebx
cmp esi, 0x1989
jl 0x10038f90
mov dword [ebp - 0x18], 0xffffffff
mov byte [ebp - 4], 0x18
cmp dword [ebp - 0x14], 0x4495
jge 0x10039000
mov edx, str.stqgnm_spidt_gerqv_pak_riikdhtbr_qzxyoqy_jpsxylj_eaihlak_efkxrigpr_hjazhf_meeta_alm
mov ecx, 0x1007f138
call fcn.100045d3
jmp 0x10039000
push edi
lea ecx, [ebp - 0x134]
mov dword [ebp - 4], 0x17
call fcn.10001ed7
lea eax, [ebp - 0x14c]
mov byte [ebp - 4], 0x1a
push eax
push ecx
mov dword [ebp - 0x14], 0xb79dc866
lea ecx, [ebp - 0x98]
mov edx, 0x3d94
call fcn.10035a5f
push 0x5a29
push ebx
push 0x41e1
push 0x7f15
push 0x3612
push 0x2892
lea eax, [ebp - 0x98]
mov edx, 0x562c
push eax
push ebx
lea ecx, [ebp - 0x134]
call fcn.10036843
mov eax, dword [ebp + 8]
add esp, 0x28
cmp dword [ebp + 8], ebx
jne 0x1003907d
mov dword [ebp - 0x14], 0xffffffff
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14c]
mov dword [eax], ecx
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x134]
sub edx, 0xcea445a8
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
mov dword [eax], edx
mov eax, dword [ebp + 8]
cmp edx, eax
setle cl
mov dword [ebp - 0x14], ecx
lea ecx, [ebp - 0x134]
call fcn.10001f5a
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 0x16
call fcn.10001f5a
push 0x20
pop eax
push 2
mov dword [ebp - 0x48], ebx
mov ecx, ebx
mov dword [ebp - 0x60], 0x2a029003
mov byte [ebp - 0x5c], bl
mov dword [ebp - 0x5b], 0x3040103
mov word [ebp - 0x57], 0x3a62
mov byte [ebp - 0x55], 4
mov word [ebp - 0xaa], ax
pop esi
cmp esi, 8
jne 0x10039117
push 4
pop ecx
push 0xa
pop esi
jmp 0x10039144
movzx edx, byte [ebp + esi - 0x5f]
mov eax, esi
sub eax, ecx
movzx eax, byte [ebp + eax - 0x62]
movzx eax, word [ebp + eax*2 - 0xb0]
mov ecx, eax
and eax, edx
or ecx, edx
sub ecx, eax
movzx eax, byte [ebp + esi - 0x60]
mov word [ebp + eax*2 - 0xb0], cx
mov ecx, ebx
add esi, 2
cmp esi, 0xc
jb 0x1003910a
xor eax, eax
mov dword [ebp - 0x184], 7
mov word [ebp - 0xa8], ax
lea ecx, [ebp - 0x198]
mov word [ebp - 0x198], ax
lea eax, [ebp - 0xb0]
push eax
mov dword [ebp - 0x188], ebx
call fcn.1002a447
xor eax, eax
mov byte [ebp - 4], 0x1b
lea edi, [ebp - 0xb0]
mov edx, 0x7a53
stosd dword es:[edi], eax
mov ecx, 0x1c6f
stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x198]
push eax
push 1
push 0x3b1
push 0x32d0
push 0x438b
lea eax, [ebp - 0x170]
push eax
push 0x3eca
push ebx
call fcn.10036843
mov ecx, dword [ebp + 0x20]
lea eax, [ebp - 0x170]
add esp, 0x20
push eax
call fcn.10039632
push ebx
push 1
lea ecx, [ebp - 0x198]
call fcn.1001231a
lea ecx, [ebp - 0x170]
call fcn.10039a85
jmp 0x1003920c
mov edx, dword [ebp + 0x18]
mov dword [edx], 0
jmp 0x10039207
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0x28ea3888
inc dword [edx]
cmp dword [edx], 2
jl 0x100391fa
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret