Function at 0x10002b2b
Capabilities:
Encode data using xor
Encrypt data using speck

Disassembly:
mov eax, 0x1005e38a
call fcn.1005dcd4
sub esp, 0x1b4
cmp byte [ebp + 0x2c], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov esi, edx
mov byte [ebp - 0x60], cl
je 0x10002b83
test cl, cl
je 0x10002b70
mov eax, dword [ebp + 0x30]
cmp byte [eax], 0
je 0x10003a77
xor ebx, ebx
push ebx
push 0x1f18
push ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
jmp 0x10003a77
push ecx
push dword [ebp + 0x18]
mov ecx, dword [ebp + 0x10]
call fcn.10007013
mov dword [esi], eax
jmp 0x10003a77
cmp byte [ebp + 8], 0
je 0x10003414
mov eax, dword [ebp + 0x14]
xor edi, edi
mov dword [ebp - 0xbc], 0x4bc662a2
xor ebx, ebx
mov dword [ebp - 0xc4], 0x6371
inc edi
mov dword [ebp - 0x70], 0x270e7ad5
mov dword [ebp - 0x20], 0x71b0
cmp dword [ebp - 0x20], 0x742b
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x24], eax
jle 0x10002c31
mov esi, ebx
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x14], 0x73ca
mov eax, esi
lea ecx, [ebp - 0x160]
cdq
push edx
push eax
call fcn.1000288f
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10002bf2
mov eax, dword [eax]
push eax
call fcn.1004603d
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x160]
call fcn.100078fb
dec esi
dec dword [ebp - 0x14]
jne 0x10002bd8
mov esi, dword [ebp - 0x18]
inc esi
mov dword [ebp - 0x18], esi
cmp esi, 0x780e
jl 0x10002bce
push ebx
push 0x517
push 0x21d7
push 0x17b
call dword [sym.imp.KERNEL32.dll_RaiseException]
push 4
lea ecx, [ebp - 0xb4]
call fcn.10001cd0
cmp dword [ebp - 0x20], 0x7085
jge 0x10002c52
push str.vtahr_ckehmd_tmmpv_ntyliamax_zqwjyfoz_lwpnlhhrd
call fcn.1004603d
pop ecx
mov dword [ebp - 4], ebx
lea edx, [ebp - 0x128]
mov dword [ebp - 0x74], edi
mov eax, 0x657a
mov dword [ebp - 0x40], 0x85d0
mov dword [ebp - 0x28], 0xfffffffe
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd4], eax
lea eax, [ebp - 0xb4]
push eax
push ecx
push ecx
call fcn.10003ad6
add esp, 0xc
lea eax, [ebp - 0xb4]
lea edx, [ebp - 0x74]
push eax
lea eax, [ebp - 0xc4]
push eax
lea eax, [ebp - 0x70]
push eax
push ecx
lea eax, [ebp - 0xbc]
mov ecx, 0x3a5d
push 0x2d34
push eax
call fcn.10004d69
add esp, 0x18
cmp dword [ebp - 0x70], ebx
jne 0x10002d39
mov ecx, dword [ebp - 0x28]
xor edx, edx
mov eax, dword [ebp - 0x70]
cmp eax, ecx
mov eax, dword [ebp - 0xb4]
setle dl
xor ecx, ecx
mov dword [ebp - 0x28], edx
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0xdc]
imul eax, dword [ebp - 0x28]
cmp eax, edx
setg cl
cmp ecx, edx
jne 0x10002d06
mov eax, ebx
cmp dword [ebp - 0xe0], ebx
je 0x10002d08
mov eax, edi
mov esi, dword [ebp - 0xb4]
xor edx, edx
imul eax, eax, 0x1153
sub eax, 0x1153
cmp eax, dword [esi + 8]
mov eax, dword [ebp - 0x40]
setl dl
xor ecx, ecx
cmp eax, edx
setne cl
imul eax, ecx, 0x5412
cmp edi, eax
sbb eax, eax
inc eax
mov dword [esi + 8], eax
mov eax, dword [ebp - 0xdc]
lea ecx, [ebp - 0xb4]
mov dword [ebp - 0x74], 0xbc6c2db6
call fcn.10001d53
mov dword [ebp - 0x9c], ebx
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x94], ebx
mov eax, dword [ebp + 0x1c]
lea ecx, [ebp - 0x90]
mov dword [ebp - 4], 3
xorps xmm0, xmm0
push dword [ebp + 0x2c]
movdqu xmmword [ebp - 0x140], xmm0
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x130]
push eax
lea eax, [ebp - 0x140]
mov dword [ebp - 0x20], edi
push eax
push ebx
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x88], ebx
call fcn.10001db9
mov byte [ebp - 4], 4
mov dword [ebp - 0x14], 0xcb667f5a
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], 0x18
jle 0x10002f0c
mov dword [ebp - 0x14], 0x812c005d
mov dword [ebp - 0x14], 0xd9532955
mov dword [ebp - 0x1c], 0x45a6
cmp dword [ebp - 0x1c], 0x471f
jle 0x10002e52
mov ecx, ebx
mov dword [ebp - 0x14], ebx
mov esi, ebx
mov eax, ebx
mov dword [ebp - 0x18], ebx
xor eax, esi
or eax, ecx
lea ecx, [ebp - 0x1a8]
cdq
push edx
push eax
call fcn.1000288f
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10002e11
mov eax, dword [eax]
push eax
call fcn.1004603d
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x1a8]
call fcn.100078fb
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x997
jl 0x10002df5
inc esi
cmp esi, 0x2090
jl 0x10002df0
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, 0x5aa7
jl 0x10002dee
push ebx
call dword [sym.imp.KERNEL32.dll_InitializeSListHead]
cmp dword [ebp - 0x1c], 0x426d
jge 0x10002e66
push str.jwpfhzvwh_jhxsh_krf_pzkxal_nqlihfx_fww_witzhyjal_vtetnko
call fcn.1004603d
pop ecx
mov dword [ebp - 4], 4
mov dword [ebp - 0x18], ebx
jmp 0x10002e80
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x50], 0xfe1ca29
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x10002e72
mov dword [ebp - 0x4c], ebx
cmp dword [ebp - 0x4c], 3
jg 0x10002f04
mov esi, dword [ebp - 0x90]
mov dword [ebp - 0x14], edi
xor edx, edx
mov dword [ebp - 0x28], 8
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x14], edi
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
cmp ecx, eax
setle dl
xor eax, eax
cmp dword [esi + 8], edx
setge al
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x14]
cmp eax, dword [ecx + edx*4]
jne 0x10002ee7
mov eax, edi
cmp dword [ebp - 0x4c], ebx
jne 0x10002ee9
mov eax, ebx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x4c]
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x28], eax
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 3
jle 0x10002e95
inc dword [ebp - 0x20]
jmp 0x10002dc1
lea eax, [ebp + 0x2f]
mov byte [ebp + 0x2f], bl
push eax
push ecx
push 0x7bc8
mov edx, 0x5879
mov ecx, 0x3af8
call fcn.100055b5
add esp, 0xc
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x90]
call fcn.10001d53
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0x1c], str.rvd_whszck_uaglzelsw_itsmb_hpkbk_pudfrstxr_mkxsrb_pxp_kof_ovl_zegvufx_oyg_zjkngvjwe_zikhvxz
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x20], 0x1a6c
cmp dword [ebp - 0x20], 0x1dae
mov dword [ebp - 0x28], eax
jle 0x10002fb5
mov dword [ebp - 0x14], ebx
mov edi, ebx
mov esi, ebx
mov ecx, ebx
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 0x44], ecx
lea eax, [esi + edi]
shl eax, cl
mov ecx, 0x10079b38
xor eax, ebx
cdq
push edx
push eax
call fcn.10006e46
mov ecx, dword [ebp - 0x44]
inc ecx
mov dword [ebp - 0x44], ecx
cmp ecx, 0x3936
jl 0x10002f69
inc esi
push 0
pop ebx
cmp esi, 0xddb
jl 0x10002f61
inc edi
cmp edi, 0x6ff5
jl 0x10002f5f
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, 0xe05
jl 0x10002f5d
mov edx, dword [ebp + 0x14]
xor edi, edi
inc edi
mov ecx, dword [ebp + 0x1c]
cmp dword [ecx + 0x14], 8
jb 0x10002fc2
mov eax, dword [ecx]
jmp 0x10002fc4
mov eax, ecx
push dword [ecx + 0x10]
mov ecx, edx
push ebx
push eax
call fcn.10007b53
mov esi, ebx
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x44], eax
cmp esi, 0xffffffff
je 0x100031be
cmp esi, dword [ebp - 0x28]
jae 0x100031be
cmp eax, 0xffffffff
jne 0x1000327a
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0xa4], ebx
mov byte [ebp - 0x39], bl
cmp byte [ebp - 0x39], 0
je 0x1000300c
push ecx
call fcn.100054a1
pop ecx
mov dword [ebp - 0x14], 0x781f
cmp dword [ebp - 0x14], 0x7856
jle 0x10003049
mov esi, ebx
mov edi, ebx
mov eax, esi
mov ecx, 0x10079b38
cdq
idiv edi
mov eax, edx
cdq
push edx
push eax
call fcn.10006e46
inc edi
cmp edi, 0x2501
jl 0x10003020
inc esi
cmp esi, 0x5af6
jl 0x1000301e
xor edi, edi
inc edi
mov dword [ebp - 0x18], ebx
jmp 0x10003060
push ecx
push ecx
lea edx, [ebp - 0xa4]
call fcn.100040f5
inc dword [ebp - 0x18]
pop ecx
pop ecx
cmp dword [ebp - 0x18], 0x1a
jl 0x1000304e
mov byte [ebp - 4], 7
cmp dword [ebp - 0x14], 0x76c9
jge 0x10003082
mov edx, str.cztydpqd_vntxwiaxu_prnz_ohyaofoq_obt_qted_mkvt_uiaokmh
mov ecx, 0x10079b38
call fcn.10009b61
mov eax, dword [ebp + 0x14]
push 0xffffffffffffffff
mov dword [ebp - 4], 3
lea ecx, [ebp - 0x178]
push dword [ebp - 0x5c]
push ecx
mov ecx, eax
call fcn.1000711d
push eax
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 9
call fcn.100071dd
push ebx
push edi
lea ecx, [ebp - 0x178]
mov byte [ebp - 4], 3
call fcn.10007bf6
mov dword [ebp - 0x2c], edi
lea edx, [ebp - 0x2c]
push 0x4705
mov dword [ebp - 0x30], 0x41449c9f
xor cl, cl
push 0x3ab
mov dword [ebp - 0x34], 4
mov dword [ebp - 0x78], 0xffffffff
push 0x65da
call fcn.10003c41
mov eax, dword [ebp - 0x2c]
add esp, 0xc
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x34]
cmp dword [ebp - 0x34], 5
jae 0x10003116
mov ecx, ebx
cmp dword [ebp - 0x2c], ebx
je 0x10003118
mov ecx, edi
xor edx, edx
mov dword [ebp - 0x30], 0xfffffffb
mov eax, dword [ebp - 0x2c]
cmp ecx, eax
mov eax, dword [ebp - 0x34]
sete dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x78]
setne cl
xor edx, edx
cmp ecx, 0xfffffffa
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
setle cl
sub edx, eax
mov eax, dword [ebp - 0x2c]
neg edx
mov dword [ebp - 0x38], ecx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setne cl
sub ecx, dword [ebp - 0x38]
je 0x10003208
push ebx
push edi
lea eax, [ebp - 0xd0]
mov dword [ebp - 0xcc], edi
push eax
lea eax, [ebp - 0xcc]
mov dword [ebp - 0xa0], 0xfffffff6
push eax
lea eax, [ebp - 0x2c]
mov dword [ebp - 0xd0], 0xf60700c0
push eax
lea eax, [ebp - 0x34]
xor dl, dl
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0xa0]
call fcn.10003e25
add esp, 0x20
lea eax, [ebp - 0x2c]
push eax
push ecx
call fcn.1000435e
pop ecx
pop ecx
mov byte [ebp - 4], 0xa
cmp dword [ebp - 0x20], 0x18e2
jge 0x100032ea
mov edx, dword [ebp - 0x1c]
mov ecx, 0x10079b38
call fcn.10009b61
jmp 0x100032ea
mov dword [ebp - 0x38], ebx
xor eax, eax
inc eax
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0x18], ebx
jmp 0x1000323c
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x148], 0x55375bb7
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x1000322b
cmp dword [ebp - 0x38], ebx
je 0x10003259
mov dword [ebp - 0x38], 0xb036c860
dec dword [ebp - 0xec]
jmp 0x100031be
mov dword [ebp - 0x30], ebx
jmp 0x1000326f
mov eax, dword [ebp - 0x30]
mov dword [ebp + eax*4 - 0xf0], 0x75ba
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 4
jl 0x1000325e
jmp 0x100031be
cmp eax, esi
je 0x100032a5
mov eax, dword [ebp + 0x14]
lea edx, [ebp - 0x9c]
push 0x26a7
push eax
push 0x62ff
push ecx
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x5c]
call fcn.1000433e
mov eax, dword [ebp - 0x44]
add esp, 0x14
mov ecx, dword [ebp + 0x1c]
mov esi, dword [ebp - 0x40]
add esi, eax
mov dword [ebp - 0x5c], esi
cmp dword [ecx + 0x14], 8
jb 0x100032ba
mov eax, dword [ecx]
jmp 0x100032bc
mov eax, ecx
push dword [ecx + 0x10]
mov ecx, dword [ebp + 0x14]
push esi
push eax
call fcn.10007b53
jmp 0x10002fd5
xor ecx, ecx
mov dword [ebp - 4], 3
inc ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x20], 0xa2215256
mov dword [ebp - 0x18], ebx
jmp 0x1000330d
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x48], ecx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ecx
jl 0x10003303
mov dword [ebp - 0x1c], ecx
mov esi, ecx
cmp dword [ebp - 0x1c], ebx
jne 0x1000331e
mov esi, ebx
imul ecx, dword [ebp - 0x1c], 0xfffffffc
xor edx, edx
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
setg dl
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x20], ebx
jne 0x10003340
cmp dword [ebp - 0x1c], ebx
jne 0x10003340
xor edx, edx
mov ecx, ebx
inc edx
jmp 0x10003345
xor edx, edx
inc edx
mov ecx, edx
xor eax, eax
cmp esi, ecx
setg al
xor ecx, ecx
test eax, eax
setns cl
imul ecx, dword [ebp - 0x1c]
neg ecx
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x48]
cmp dword [ebp - 0x48], 0x5f88
jg 0x10003372
mov eax, edx
cmp dword [ebp - 0x48], ebx
jne 0x10003374
mov eax, ebx
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], ebx
jl 0x100033f5
push ebx
push edx
push 0x3034
push 0x29dd
push 0x2ce8
push 0x3770
push 0x7c0a
push 0x505c
mov ecx, 0x7a8c
call fcn.10003e25
add esp, 0x20
mov dword [ebp - 0x20], ebx
jmp 0x100033e8
mov dword [ebp - 0x14], 9
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], ebx
jl 0x100033e5
mov dword [ebp - 0x18], 0x15fb26c
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], ebx
jl 0x100033e0
mov eax, dword [ebp - 0x20]
cmp dword [ebp + eax*4 - 0x48], ebx
jne 0x100033e0
mov eax, dword [ebp - 0x18]
dec dword [ebp - 0x18]
jns 0x100033cf
dec dword [ebp - 0x14]
jns 0x100033c0
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jle 0x100033b1
dec dword [ebp - 0x1c]
push 1
pop edx
jns 0x1000337f
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x9c]
push eax
call fcn.1000724d
lea ecx, [ebp - 0x9c]
call fcn.10007d28
jmp 0x10003a77
push dword [ebp + 0x28]
lea ecx, [ebp - 0x118]
call fcn.10006f5b
push ecx
push dword [ebp + 0xc]
lea ecx, [ebp - 0x118]
mov dword [ebp - 4], 0xc
call fcn.10007097
xor ebx, ebx
mov dword [ebp - 0x58], eax
cmp eax, 0xffffffff
je 0x10003596
mov dword [ebp - 0x1c], 0xda62
lea ecx, [ebp - 0x124]
mov dword [ebp - 0x14], 0x78e10a3b
mov dword [ebp - 0x18], 0x656540f2
mov dword [ebp - 0x14], 0xa4a603d2
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x24], 5
mov dword [ebp - 0x24], 0xffffffff
push 4
call fcn.10001cd0
push 4
mov byte [ebp - 4], 0xd
mov dword [ebp - 0x20], ebx
pop edx
jmp 0x1000349f
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x124]
mov dword [eax + ecx*4], 0x93c34f97
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edx
jl 0x1000348c
cmp dword [ebp - 0x1c], 0x8a60
jg 0x100034b5
cmp dword [ebp - 0x1c], ebx
jne 0x100034b5
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x1c]
jle 0x100034cc
cmp dword [ebp - 0x1c], ebx
jne 0x100034cc
xor ecx, ecx
mov eax, ebx
inc ecx
jmp 0x100034d1
xor ecx, ecx
inc ecx
mov eax, ecx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x1c]
neg eax
sbb eax, eax
inc eax
cmp eax, dword [ebp - 0x18]
jg 0x100034fa
mov esi, ecx
cmp dword [ebp - 0x1c], ebx
jne 0x100034fc
mov esi, ebx
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp esi, eax
push 0x7097
setl cl
cmp ecx, 0x8deb256c
sbb eax, eax
xor cl, cl
neg eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x24], 0xfffffff7
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x24], 0x49562184
mov dword [ebp - 0x24], edx
lea edx, [ebp - 0xa8]
mov dword [ebp - 0xa8], 0xffffffff
call fcn.10004d2e
pop ecx
lea ecx, [ebp - 0x124]
mov byte [ebp - 4], 0xc
call fcn.10001d53
mov eax, dword [ebp - 0x58]
lea ecx, [ebp - 0x118]
inc eax
push eax
push ebx
lea eax, [ebp - 0x190]
push eax
call fcn.1000711d
push eax
lea ecx, [ebp - 0x118]
call fcn.10006fbb
xor edi, edi
lea ecx, [ebp - 0x190]
push ebx
inc edi
push edi
call fcn.10007bf6
mov dword [ebp - 0x14], 0x202f
cmp dword [ebp - 0x14], 0x2080
jle 0x100035cf
mov esi, ebx
mov edi, ebx
mov ecx, edi
mov eax, esi
shl eax, cl
mov ecx, 0x10079b38
cdq
push edx
push eax
call fcn.10006e46
inc edi
cmp edi, 0x63d3
jl 0x100035aa
inc esi
cmp esi, 0x3cf1
jl 0x100035a8
push ebx
push dword [ebp + 0xc]
lea edx, [ebp - 0x118]
push 0x7b6a
lea ecx, [ebp - 0x58]
call fcn.10002aeb
add esp, 0xc
mov byte [ebp - 4], 0xe
cmp dword [ebp - 0x14], 0x1f36
jge 0x10003623
mov edx, str.wbhrboe_tqlu_qsnhi_clplmah_wmgckdnm_gnkoxocac_rgs_woiqt
mov ecx, 0x10079b38
call fcn.10009b61
jmp 0x10003623
mov dword [ebp - 4], 0xc
xor ecx, ecx
mov dword [ebp - 0x18], 6
inc ecx
mov dword [ebp - 0x20], 0x6a9ef72d
mov dword [ebp - 0xb8], 0x9f3c5a4a
mov dword [ebp - 0x18], ebx
jmp 0x10003766
mov dword [ebp - 0x1c], 0x8b10
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x18], ebx
je 0x10003683
lea eax, [ebp - 0xc0]
mov dword [ebp - 0xc0], 0xd65121ac
push eax
mov ecx, 0x7936
call fcn.10006299
pop ecx
jmp 0x10003760
mov dword [ebp - 0x28], 7
mov dword [ebp - 0x20], ebx
jmp 0x1000369d
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x6c], 0x13281d21
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x1000368f
mov dword [ebp - 0x1c], ebx
jmp 0x10003754
call fcn.10003df3
xor ecx, ecx
mov dword [ebp - 0x20], ebx
inc ecx
jmp 0x10003748
mov dword [ebp - 0x14], 0x858f9c25
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], ebx
jl 0x10003745
mov dword [ebp - 0x24], 0xfffffffa
xor edx, edx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + eax*4 - 0x6c]
mov eax, dword [ebp - 0x1c]
add ecx, 0x1c2b8ad2
mov eax, dword [ebp + eax*4 - 0x6c]
add eax, ecx
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
setle dl
cmp edx, dword [ebp - 0x28]
jg 0x1000371e
mov eax, dword [ebp - 0x1c]
cmp dword [ebp + eax*4 - 0x6c], ebx
jne 0x1000371e
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x6c]
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov eax, dword [ebp + eax*4 - 0x6c]
test eax, eax
mov eax, dword [ebp - 0x24]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x14]
setle cl
mov dword [ebp + eax*4 - 0x6c], ecx
dec dword [ebp - 0x14]
jns 0x100036cd
xor ecx, ecx
inc ecx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ecx
jle 0x100036bb
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ecx
jle 0x100036ab
mov eax, dword [ebp - 0x28]
dec dword [ebp - 0x18]
push 1
pop ecx
cmp dword [ebp - 0x18], 0xfffffff5
jge 0x1000364d
push ebx
push 0x2aef
mov edx, 0x30c1
lea ecx, [ebp - 0xb8]
call fcn.10005920
cmp dword [ebp - 0x58], 0xffffffff
pop ecx
pop ecx
je 0x100038d5
xor ecx, ecx
inc ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x28], 2
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x14], ebx
jmp 0x100037b9
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x64], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x100037ab
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], ebx
jl 0x1000385f
mov dword [ebp - 0x20], 0xf951fe77
mov dword [ebp - 0x24], 0x3589fe57
mov dword [ebp - 0x14], ebx
jmp 0x100037ea
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x12c], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x100037dd
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], ebx
jl 0x10003856
mov dword [ebp - 0x24], 0xfffffffe
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x14], ebx
jmp 0x10003814
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x54], 0x8ef6b8f3
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x10003806
mov dword [ebp - 0x54], ebx
cmp dword [ebp - 0x54], ebx
jl 0x10003851
push 0xb0e
lea eax, [ebp - 0xc8]
mov dword [ebp - 0xc8], 0xf30836b1
push 0x3c1f
push eax
mov edx, 0x4e5
call fcn.100053e2
add esp, 0xc
dec dword [ebp - 0x54]
jns 0x10003821
xor ecx, ecx
inc ecx
dec dword [ebp - 0x20]
jns 0x100037f7
dec dword [ebp - 0x18]
jns 0x100037ca
cmp dword [ebp - 0x64], ebx
je 0x10003895
cmp dword [ebp - 0x64], 4
ja 0x10003874
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], ebx
jne 0x10003874
mov ecx, ebx
mov eax, dword [ebp - 0x64]
xor edx, edx
cmp ecx, 7
sete dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x28], ecx
cmp dword [ebp - 0x28], ebx
je 0x10003895
xor edi, edi
inc edi
mov eax, edi
jmp 0x1000389a
xor edi, edi
mov eax, ebx
inc edi
imul eax, eax, 0x3a7e
lea ecx, [ebp - 0x118]
push 0xffffffffffffffff
push dword [ebp - 0x58]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x1c0]
push eax
call fcn.1000711d
push eax
lea ecx, [ebp - 0x118]
call fcn.10006fbb
push ebx
push edi
lea ecx, [ebp - 0x1c0]
call fcn.10007bf6
jmp 0x100038d8
xor edi, edi
inc edi
mov dword [ebp - 0x1c], 0x4bc662a2
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x14], 0x6371
mov dword [ebp - 0x18], 0x270e7ad5
push 4
call fcn.10001cd0
mov byte [ebp - 4], 0x10
lea edx, [ebp - 0x130]
mov dword [ebp - 0x28], edi
mov eax, 0x657a
mov dword [ebp - 0x38], 0x85d0
mov dword [ebp - 0x24], 0xfffffffe
mov dword [ebp - 0x100], eax
push ecx
mov dword [ebp - 0xfc], eax
push ecx
mov dword [ebp - 0xf8], eax
lea ecx, [ebp - 0x84]
mov dword [ebp - 0xf4], eax
call fcn.10003af7
pop ecx
pop ecx
cmp dword [ebp - 0x1c], ebx
jne 0x1000397b
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x1c]
jne 0x10003958
mov ecx, edi
cmp dword [ebp - 0x1c], ebx
jne 0x1000395a
mov ecx, ebx
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
imul eax, ecx
xor ecx, ecx
sub edx, eax
mov eax, dword [ebp - 0x1c]
cmp edx, eax
setne cl
cmp ecx, dword [ebp - 0x14]
jle 0x1000397b
mov edx, ebx
cmp dword [ebp - 0x14], ebx
je 0x1000397d
mov edx, edi
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setge cl
xor edx, edx
add ecx, 0xbfc3
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
mov eax, dword [ebp - 0x14]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x84]
setg cl
mov dword [eax + 8], ecx
xor eax, eax
test ecx, ecx
sete al
cmp eax, dword [ebp - 0x14]
jg 0x100039c9
mov eax, dword [ebp - 0x84]
cmp dword [eax + 8], ebx
mov eax, ebx
jne 0x100039cb
mov eax, edi
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x18], ebx
jne 0x10003a38
mov eax, dword [ebp - 0x84]
xor edx, edx
mov ecx, dword [ebp - 0x24]
mov esi, dword [eax + 0xc]
mov eax, dword [ebp - 0x18]
cmp eax, ecx
setle dl
xor eax, eax
imul edx, dword [ebp - 0xfc]
cmp edx, esi
setg al
cmp eax, esi
jne 0x10003a05
mov eax, ebx
cmp dword [ebp - 0x100], ebx
je 0x10003a07
mov eax, edi
mov esi, dword [ebp - 0x84]
xor edx, edx
imul eax, eax, 0x1153
sub eax, 0x1153
cmp eax, dword [esi + 8]
mov eax, dword [ebp - 0x38]
setl dl
xor ecx, ecx
cmp eax, edx
setne cl
imul eax, ecx, 0x5412
cmp edi, eax
sbb eax, eax
inc eax
mov dword [esi + 8], eax
mov eax, dword [ebp - 0xfc]
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x28], 0xbc6c2db6
mov byte [ebp - 4], 0xc
call fcn.10001d53
mov ecx, dword [ebp + 0x20]
lea eax, [ebp - 0x118]
cmp ecx, eax
je 0x10003a6a
push 0xffffffffffffffff
push ebx
push eax
call fcn.100079f1
push ebx
push edi
lea ecx, [ebp - 0x118]
call fcn.10007bf6
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret