Function at 0x10004740
Capabilities:
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x114
push ebx
push esi
push edi
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xb0], ecx
mov byte [ebp - 0xd], 0x11
mov ax, word [0x1000f068]
mov word [ebp - 0x36], ax
movzx eax, word [0x1000f070]
cdq
mov dword [ebp - 0x48], eax
movzx eax, byte [0x1000f002]
mov dword [ebp - 0x44], edx
mov word [ebp - 0xc], ax
mov eax, dword [0x1000f060]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x28], 6
mov dword [ebp - 0x24], 0
mov al, byte [0x1000f004]
mov byte [ebp - 3], al
mov eax, dword [0x1000f09c]
mov byte [ebp - 2], al
mov al, byte [0x1000f0a0]
mov byte [ebp - 1], 0x73
mov byte [ebp - 0xd], al
movzx eax, word [section..data]
mov dword [ebp - 0x1c], eax
movzx eax, byte [0x1000f01b]
cdq
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
mov ax, word [0x1000f0a4]
mov word [ebp - 0x10], ax
mov eax, dword [0x1000f06c]
movzx eax, ax
mov dword [ebp - 0x34], eax
movsx eax, byte [0x1000f01e]
mov dword [ebp - 0x50], eax
movzx eax, word [0x1000f0a0]
mov word [ebp - 0x5c], ax
movzx eax, byte [0x1000f01b]
mov word [ebp - 0x18], ax
mov ax, word [0x1000f03c]
mov eax, dword [0x1000f09c]
mov word [ebp - 0x60], ax
mov ax, word [0x1000f068]
xor ebx, ebx
movsx ecx, byte [ebp - 2]
movzx eax, word [0x1000f064]
cmp eax, ecx
mov byte [ebp - 0x78], 0xaf
sete bl
mov dword [ebp - 0x70], 0xae
xor eax, eax
mov dword [ebp - 0xa8], 0xf6
cmp word [0x1000f064], 4
sete al
mov dword [ebp - 0xac], 0
mov edi, 0x93
mov dword [ebp - 0x4c], edi
cmp ebx, eax
jbe 0x1000489c
cmp word [0x1000f044], 0
je 0x1000487e
cmp byte [0x1000f002], 0
je 0x1000487e
mov ecx, 1
jmp 0x10004880
xor ecx, ecx
mov ax, word [ebp - 0x10]
movsx eax, al
cmp ecx, eax
jl 0x1000489c
movzx eax, byte [0x1000f004]
add ax, 0x77
mov word [0x1000f048], ax
mov eax, dword [0x100b0edc]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x44]
or ecx, eax
je 0x100048d7
mov al, byte [0x1000f007]
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x44]
movzx eax, cx
movzx ecx, word [ebp - 0xc]
movsx ecx, cx
cwde
imul ecx, eax
movzx eax, cx
movzx ecx, word [ebp - 0xc]
sub cx, ax
mov word [ebp - 0xc], cx
jmp 0x100048e0
mov eax, 0xffffaf00
mov word [ebp - 0xc], ax
mov eax, dword [ebp - 8]
add eax, 0x2b
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x1c], 0x20efd3b9
mov eax, dword [ebp - 8]
add eax, 0x16b
mov dword [ebp - 0xa4], eax
call fcn.100010d0
mov byte [0x1000f004], al
cmp byte [0x1000f004], 0
je 0x10004926
movzx eax, byte [0x1000f01a]
mov ecx, 0x3b99
sub ax, cx
mov word [0x1000f074], ax
mov eax, dword [ebp - 8]
add eax, 0x1b0
mov dword [ebp - 0x14], eax
movsx eax, byte [0x1000f01e]
not eax
test eax, eax
je 0x1000495d
movsx ecx, byte [0x1000f003]
movzx eax, byte [0x1000f006]
cmp eax, ecx
jg 0x10004995
mov al, byte [0x1000f01a]
sub byte [0x1000f01c], al
jmp 0x10004995
movsx eax, byte [ebp - 3]
not eax
cmp dword [0x1000f040], eax
ja 0x10004995
mov ecx, dword [0x1000f09c]
mov eax, dword [0x1000f09c]
add ecx, 0xaf
and eax, ecx
mov dword [0x1000f09c], eax
movzx ecx, word [ebp - 0x18]
movzx eax, word [ebp - 0x18]
sub ecx, eax
add cx, word [ebp - 0xc]
mov word [ebp - 0x18], cx
mov eax, dword [0x100b0edc]
mov dword [ebp - 8], eax
mov ax, word [0x1000f04c]
mov bx, word [0x1000f044]
mov al, bl
mov dword [ebp - 0x80], 0xa17d94ad
add al, 0x7d
mov dword [ebp - 0x58], eax
movsx eax, byte [ebp - 2]
imul ecx, eax, 0xffffff51
movzx eax, byte [0x1000f002]
sub ecx, eax
movzx eax, word [0x1000f04c]
add al, cl
not al
mov byte [0x1000f007], al
mov eax, dword [ebp - 8]
add eax, 0x10e
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
add eax, 0x195
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 8]
add eax, 0x21a
mov dword [ebp - 0x14], eax
mov eax, dword [0x100b0edc]
mov dword [ebp - 0x28], 4
mov dword [ebp - 0x24], 0
mov dword [ebp - 8], eax
mov eax, dword [0x1000f09c]
cmp byte [0x1000f002], 0
je 0x10004a3a
mov ecx, dword [0x1000f008]
mov eax, dword [0x1000f00c]
shld eax, ecx, 8
shl ecx, 8
mov dword [0x1000f040], ecx
jmp 0x10004a6e
mov eax, 0xe6
cmp word [0x1000f0a0], ax
jb 0x10004a66
movzx eax, byte [ebp - 1]
mov ecx, 0xae
movsx edi, word [str._k]
add ax, cx
movzx eax, ax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x4c], edi
jmp 0x10004a6e
mov eax, dword [0x1000f06c]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 8]
add eax, 0x385
mov dword [0x1000f07c], 0
mov dword [ebp - 0x14], eax
mov eax, dword [0x100b0edc]
mov dword [0x1000f078], eax
mov dword [0x1000f09c], 1
mov eax, dword [ebp - 8]
add eax, 0x34c
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
add eax, 0x1a0
mov dword [ebp - 0x60], eax
mov eax, dword [0x100b0edc]
mov dword [ebp - 8], eax
cmp dword [0x1000f06c], 0
je 0x10004b3c
mov esi, 0x1d0
mov edi, 0xf6
nop dword [eax + eax]
push dword [0x1000f024]
movzx eax, byte [0x1000f002]
push dword [0x1000f020]
cdq
push edx
push eax
call fcn.1000d360
or eax, edx
jne 0x10004af4
lea edx, [eax + 1]
jmp 0x10004af6
xor edx, edx
movzx eax, byte [0x1000f005]
mov ecx, dword [ebp - 0x1c]
sub eax, 0xaf
sub cl, dl
movzx eax, al
movzx ecx, cl
imul ecx, eax
add edi, 0xc1e0e1c6
adc dword [ebp - 0xac], 0xfffb1112
dec esi
inc byte [0x1000f003]
mov byte [0x1000f004], cl
test esi, esi
jg 0x10004ad0
mov dword [ebp - 0xa8], edi
mov edi, dword [ebp - 0x4c]
jmp 0x10004b4f
mov eax, 0xffffeb1b
mov word [ebp - 0x18], ax
mov al, byte [str._k]
add al, 0x19
mov byte [ebp - 1], al
mov eax, dword [ebp - 8]
sub esp, 8
add eax, 0x6c
mov dword [ebp - 0x74], eax
mov ax, word [0x1000f044]
call fcn.10001860
mov word [0x1000f050], ax
xor edx, edx
movzx eax, word [0x1000f050]
add esp, 8
cmp ax, 0x46
movzx eax, word [0x1000f050]
setle dl
xor ecx, ecx
test ax, ax
setle cl
cmp ecx, edx
jb 0x10004c0e
cmp byte [0x1000f01e], 0
je 0x10004ba4
cmp byte [0x1000f01a], 0
jne 0x10004bd5
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
or ecx, eax
jne 0x10004bd5
mov eax, dword [0x1000f09c]
mov eax, dword [0x1000f058]
mov ecx, dword [0x1000f05c]
mov ecx, dword [0x1000f020]
mov eax, dword [0x1000f024]
not ecx
not eax
or ecx, eax
jne 0x10004bd5
mov ax, word [ebp - 0x18]
movsx eax, byte [ebp - 3]
mov esi, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
cdq
push edx
push eax
push ecx
push esi
call fcn.1000d360
mov ecx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x2c]
sub ecx, eax
mov al, byte [0x1000f002]
sbb esi, edx
mov dword [ebp - 0x30], ecx
inc al
mov dword [ebp - 0x2c], esi
movzx eax, al
imul eax, eax, 0xaf
mov dword [ebp - 0x78], eax
jmp 0x10004c1c
mov ax, word [0x1000f03c]
inc ax
mov word [0x1000f03c], ax
mov eax, dword [ebp - 8]
dec edi
add eax, 0x3f1
mov dword [ebp - 0x4c], edi
mov di, word [ebp - 0x70]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 8]
add eax, 0x3d0
cmp byte [0x1000f006], 0
mov dword [ebp - 0x68], eax
mov eax, dword [0x100b0edc]
mov dword [ebp - 8], eax
je 0x10004d18
cmp byte [0x1000f002], 0
je 0x10004d18
movsx eax, byte [ebp - 3]
cmp eax, dword [ebp - 0x50]
je 0x10004c7c
mov eax, dword [ebp - 0x50]
movzx ebx, di
mov byte [ebp - 3], al
sub ebx, 0x3e11cc8b
jmp 0x10004d1d
cmp byte [0x1000f004], 0
jne 0x10004ca5
mov eax, dword [0x1000f008]
mov ecx, dword [0x1000f00c]
shld ecx, eax, 6
shl eax, 6
add bl, 0x69
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], ecx
mov byte [ebp - 1], bl
jmp 0x10004d18
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
or ecx, eax
je 0x10004cca
movsx eax, byte [0x10109930]
cdq
add dword [0x1000f030], eax
mov eax, dword [0x1000f09c]
adc dword [0x1000f034], edx
jmp 0x10004d18
mov ax, word [section..data]
xor ecx, ecx
test ax, ax
movzx eax, byte [0x1000f002]
sete cl
cmp eax, ecx
jb 0x10004d18
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
push 0
push edx
push eax
push ecx
call fcn.1000d360
mov ecx, eax
mov esi, edx
mov ax, word [ebp - 0x10]
movsx eax, al
cdq
add ecx, eax
adc esi, edx
add ecx, 0x9af7b1e
mov dword [ebp - 0x48], ecx
adc esi, 0xfff7090d
mov dword [ebp - 0x44], esi
mov ebx, 0xc1ee3375
mov eax, dword [ebp - 8]
add eax, 0x198
push ecx
mov dword [ebp - 0x7c], eax
call fcn.10001000
mov byte [ebp - 2], al
add esp, 4
cmp byte [ebp - 2], 0
jle 0x10004d5b
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov ax, word [0x1000f070]
mov ecx, 0x7876
sub ax, cx
add di, ax
mov word [ebp - 0x70], di
mov eax, dword [ebp - 8]
add eax, 0x308
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 8]
add eax, 0x3ca
mov dword [ebp - 0xc0], eax
mov ax, word [str._k]
sub ax, 0x19
mov word [0x1000f054], ax
mov eax, dword [0x100b0edc]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
add eax, 0x236
mov dword [ebp - 0x14], eax
movsx eax, word [ebp - 0xc]
mov edx, dword [0x1000f098]
sub edx, eax
movzx eax, di
not edx
sub edx, eax
movzx eax, byte [0x1000f005]
movsx ecx, word [str._k]
add edx, dword [ebp - 0xa8]
add ecx, eax
movzx eax, word [0x1000f0a4]
not eax
xor eax, ecx
and eax, edx
mov dword [0x1000f040], eax
mov al, byte [0x1000f005]
movzx ecx, byte [0x1000f020]
movzx edx, al
mov al, byte [0x1000f005]
imul edx, ecx
add al, dl
mov byte [0x1000f005], al
mov eax, dword [ebp - 8]
add eax, 0x2e6
mov dword [ebp - 0x14], eax
movsx eax, word [ebp - 0xc]
cmp dword [0x1000f098], eax
sbb edx, edx
neg edx
cmp dword [0x1000f098], 0x1b
sbb eax, eax
neg eax
cmp edx, eax
jae 0x10004e64
mov ecx, dword [0x1000f09c]
xor eax, eax
sub ecx, dword [0x1000f088]
sbb eax, dword [0x1000f08c]
or ecx, eax
jne 0x10004e35
lea eax, [ecx + 1]
jmp 0x10004e37
xor eax, eax
movsx ecx, word [str._k]
sub ecx, eax
mov al, byte [0x1000f007]
add ecx, 0xddab
movzx eax, al
movzx ecx, cl
imul eax, ecx
mov byte [0x1000f007], al
mov eax, ebx
xor eax, 0xe39
mov word [ebp - 0xc], ax
mov eax, dword [ebp - 8]
add eax, 0xae
mov dword [ebp - 0xbc], eax
mov ecx, dword [0x1000f09c]
mov eax, dword [0x1000f09c]
add ecx, dword [ebp - 0x4c]
or eax, ecx
mov dword [0x1000f09c], eax
movsx eax, byte [ebp - 2]
movzx ecx, byte [0x1000f006]
not ax
movzx eax, ax
xor cx, ax
movzx eax, word [0x1000f0a0]
movzx ecx, cx
imul ecx, eax
mov eax, dword [0x100b0edc]
mov word [0x1000f094], cx
movzx ecx, byte [0x1000f01a]
mov dword [ebp - 8], eax
movzx eax, word [ebp - 0x36]
sub ecx, eax
movzx eax, byte [0x1000f004]
mov esi, dword [0x1000f09c]
sub ecx, eax
mov eax, dword [ebp - 0x34]
add ecx, ebx
movsx edi, ax
not ecx
mov eax, dword [ebp - 8]
sub esi, edi
add eax, 0x39
and esi, ecx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
add eax, 0xe0
mov dword [ebp - 0xb4], esi
mov dword [ebp - 0x98], eax
cmp byte [0x1000f005], 0
jne 0x10004f15
mov al, byte [ebp - 2]
add al, byte [0x1000f01d]
mov byte [0x1000f002], al
mov eax, dword [ebp - 8]
mov ecx, 0x71d1
add eax, 0xea44
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0x14], eax
xor edx, edx
mov eax, dword [0x100b0edc]
mov dword [ebp - 0x4c], eax
mov ax, word [0x1000f03c]
add ax, cx
mov word [0x1000f054], ax
movzx ecx, byte [0x1000f005]
movsx eax, byte [ebp - 0xd]
cmp ecx, eax
setl dl
cmp byte [0x1000f005], 0x2f
sbb eax, eax
neg eax
cmp edx, eax
ja 0x10005025
mov eax, dword [ebp - 0x1c]
sub esp, 8
call fcn.10001860
mov byte [ebp - 1], al
xor edx, edx
mov al, byte [ebp - 1]
add esp, 8
cmp al, 0x5e
mov al, byte [ebp - 1]
sete dl
xor ecx, ecx
test al, al
sete cl
cmp ecx, edx
jbe 0x10004fe5
sub esp, 8
call fcn.100013c0
mov dword [0x1000f010], eax
add esp, 8
mov dword [0x1000f014], edx
mov ecx, dword [0x1000f010]
mov eax, dword [0x1000f014]
or ecx, eax
je 0x10005025
cmp word [0x1000f03c], 0
je 0x10005025
lea eax, [edi + 0xe01d]
xor dword [0x1000f060], eax
mov dword [0x1000f008], 0x8bba68cd
mov dword [0x1000f00c], 0
jmp 0x10005025
mov eax, dword [0x1000f020]
or eax, dword [0x1000f024]
je 0x10005025
movzx eax, byte [0x1000f01b]
movsx ecx, byte [ebp - 2]
not eax
add ecx, eax
movsx eax, word [0x1000f080]
mov edx, dword [0x1000f06c]
add edx, eax
mov al, byte [ebp - 0x4c]
imul edx, ecx
sub al, bl
xor ecx, ecx
movzx eax, al
test edx, edx
cmove ecx, eax
mov dword [ebp - 0x58], ecx
imul eax, dword [ebp - 0x98], 0xe0
mov ecx, 0xc7b2
sub esp, 8
sub ecx, eax
mov dword [ebp - 0x14], ecx
mov eax, dword [0x1000f09c]
and eax, 0xf0
mov word [0x1000f068], ax
mov eax, dword [0x100b0edc]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
add eax, 0xe4a6
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 8]
add eax, 0x6d
mov dword [ebp - 0x38], eax
mov ax, word [ebp - 0x18]
mov al, byte [ebp - 1]
call fcn.10001860
cwde
add esp, 8
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 8]
add eax, 0x3698
mov dword [ebp - 8], eax
movzx eax, word [0x1000f044]
mov byte [0x10156409], al
mov al, byte [0x100b0edc]
mov byte [ebp - 1], al
imul eax, dword [0x1000f09c], 0xbb
mov word [0x1000f0a0], ax
mov eax, dword [ebp - 0x38]
or eax, dword [ebp - 0x98]
mov edx, dword [ebp - 0x38]
add edx, dword [ebp - 0x98]
mov ecx, dword [ebp - 0xa4]
xor ecx, dword [ebp - 0xa4]
imul edx, eax
mov eax, dword [ebp - 0x64]
add eax, dword [ebp - 0x64]
imul eax, ecx
xor edx, 0xccdacacc
add eax, edx
cmp byte [ebp - 0x10], 0
mov dword [ebp - 0xa4], eax
je 0x10005117
sub esp, 8
call fcn.10001860
cwde
add esp, 8
mov dword [0x1000f060], eax
test eax, eax
jne 0x10005177
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
sub eax, 1
mov dword [ebp - 0x30], eax
sbb ecx, 0
mov dword [ebp - 0x2c], ecx
jmp 0x10005177
movzx eax, byte [0x1000f01a]
mov esi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
cdq
cmp ecx, edx
jl 0x10005136
jg 0x1000512f
cmp esi, eax
jbe 0x10005136
mov edi, 1
jmp 0x10005138
xor edi, edi
movzx eax, word [0x1000f064]
mov ecx, dword [ebp - 0xac]
not eax
mov esi, dword [ebp - 0xa8]
not ecx
cdq
not esi
cmp edx, ecx
jl 0x10005163
jg 0x1000515c
cmp eax, esi
jb 0x10005163
mov eax, 1
jmp 0x10005165
xor eax, eax
mov esi, dword [ebp - 0xb4]
cmp edi, eax
jb 0x10005177
mov al, byte [ebp - 2]
sub al, 0x4e
mov byte [ebp - 3], al
mov eax, dword [0x100b0edc]
mov dword [ebp - 8], eax
movzx eax, word [0x1000f068]
cmp eax, dword [0x1000f09c]
jb 0x100051b6
mov edx, dword [ebp - 0x70]
mov ecx, dword [0x1000f010]
add edx, edx
mov eax, dword [0x1000f014]
sub dx, cx
movzx eax, dx
mov dword [ebp - 0x70], eax
mov eax, dword [0x100b0edc]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], 0
mov eax, dword [ebp - 8]
movups xmm0, xmmword [str.AADTB.dll]
add eax, 0x2f0
mov dword [ebp - 0x64], eax
mov eax, dword [0x1000e070]
mov dword [ebp - 0xd8], eax
lea eax, [ebp - 0xe8]
push eax
movups xmmword [ebp - 0xe8], xmm0
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov byte [ebp - 3], al
mov ecx, 0x16f
mov eax, dword [ebp - 8]
add eax, 0x226
mov dword [ebp - 0x64], eax
nop word [eax + eax]
movzx eax, word [0x1000f070]
add eax, 0x53
mov dword [0x1000f024], 0
mov dword [0x1000f020], eax
mov ax, word [ebp - 0xc]
inc ax
mov word [ebp - 0xc], ax
sub ecx, 1
jne 0x10005200
mov eax, dword [ebp - 8]
xor edi, edi
add eax, 0x391
mov dword [ebp - 8], eax
movzx ecx, word [0x1000f0a4]
movsx eax, word [ebp - 0x18]
xor eax, ecx
mov ecx, dword [ebp - 0x48]
cdq
mov ebx, eax
mov eax, esi
mov esi, dword [ebp - 0x44]
add eax, ecx
push edx
push ebx
adc edi, esi
push edi
push eax
call fcn.1000d360
movzx ecx, word [0x1000f03c]
mov edi, eax
mov esi, 0x56
mov dword [ebp - 0x38], 0
sub esi, ecx
xor eax, eax
mov ecx, dword [ebp - 0x1c]
add ecx, esi
not ecx
sub ecx, edi
mov dword [0x1000f010], ecx
mov cl, 0x71
sbb eax, edx
mov dword [0x1000f014], eax
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x6c]
xor dl, al
mov eax, dword [ebp - 0x6c]
sub cl, al
movsx eax, dl
movsx ecx, cl
imul ecx, eax
add cl, 0x6c
mov byte [ebp - 0x85], cl
mov dword [0x1000f010], 0x7614
mov dword [0x1000f014], 0
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
add eax, 0xce
adc ecx, 0
cmp dword [0x1000f078], eax
jne 0x10005366
cmp dword [0x1000f07c], ecx
jne 0x10005366
nop dword [eax]
movzx eax, word [0x1000f0a4]
mov ecx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x44]
cdq
add ecx, eax
adc esi, edx
cmp ecx, 1
jne 0x10005366
test esi, esi
jne 0x10005366
mov al, byte [0x1000f01c]
mov dl, 0x44
cmp al, byte [0x1000f005]
mov al, byte [0x1000f005]
sbb ecx, ecx
inc ecx
cmp dl, al
sbb eax, eax
inc eax
cmp ecx, eax
jbe 0x10005334
mov al, byte [0x1000f094]
sub byte [0x1000f006], al
mov dword [0x1000f010], 0x7614
mov dword [0x1000f014], 0
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
add eax, 0xce
adc ecx, 0
cmp dword [0x1000f078], eax
jne 0x10005366
cmp dword [0x1000f07c], ecx
je 0x100052f0
mov eax, dword [ebp - 0x60]
sub al, byte [ebp - 0x60]
mov edx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x60]
add dl, 0xe
mov ebx, dword [ebp - 0x78]
xor dl, al
mov eax, dword [ebp - 0x60]
xor cl, 0xf2
inc byte [ebp - 0x58]
xor al, 0xf2
sub cl, al
mov byte [ebp - 0x8b], 0x6c
movsx ecx, cl
movsx eax, dl
imul ecx, eax
mov al, bl
add al, 6
mov byte [ebp - 0x8a], 0x33
mov byte [0x1000f002], al
add cl, 0x4b
mov byte [ebp - 0x90], cl
mov dword [0x1000f008], 0xd8e1aed6
mov dword [0x1000f00c], 0
movzx eax, byte [ebp - 1]
mov word [0x1000f054], ax
mov al, byte [ebp - 0x58]
add al, 0x52
mov byte [ebp - 0x86], 0x6c
mov byte [ebp - 0xd], al
movsx eax, byte [ebp - 0x74]
imul edx, eax, 0x76
mov eax, dword [ebp - 0x9c]
sub dl, al
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
sub dl, 0x76
xor cl, al
movsx eax, dl
movsx edx, cl
mov ecx, dword [ebp - 0x74]
imul edx, eax
xor cl, 0x8a
movsx ecx, cl
movsx eax, dl
imul ecx, eax
mov al, byte [ebp - 1]
movzx eax, bl
mov dword [ebp - 0x78], eax
mov byte [ebp - 0x8d], 0x6e
add cl, 0x72
mov byte [ebp - 0x87], 0x64
lea edi, [eax + 0xa5]
mov byte [ebp - 0x8e], cl
movzx eax, byte [0x1000f006]
mov byte [ebp - 3], 0
mov dword [0x1000f040], 0xdaef7b9c
cmp eax, edi
jne 0x100054db
mov ebx, dword [ebp - 0x94]
nop dword [eax + eax]
movsx eax, word [0x1000f04c]
mov ecx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x3c]
cdq
add ecx, eax
adc esi, edx
cmp ecx, 1
jne 0x100054db
test esi, esi
jne 0x100054db
movzx eax, word [0x1000f03c]
xor ecx, ecx
sub ax, word [0x1000f094]
mov word [0x1000f03c], ax
movzx edx, word [0x1000f090]
mov ax, word [0x1000f044]
imul edx, ebx
test ax, ax
movzx eax, word [0x1000f074]
sete cl
mov dword [0x1000f040], 0xdaef7b9c
add ecx, edx
add eax, ecx
xor ecx, ecx
cmp byte [ebp - 0x10], cl
sete cl
xor eax, ecx
movzx ecx, byte [0x1000f006]
cdq
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0xb8], edx
cmp ecx, edi
je 0x10005460
movzx eax, byte [0x1000f004]
cdq
mov esi, eax
mov ecx, edx
mov eax, dword [ebp - 0x58]
movzx eax, al
cdq
push edx
push eax
push ecx
push esi
call fcn.1000d360
mov ecx, dword [ebp - 0x34]
mov edi, eax
mov ebx, edx
movsx eax, cx
mov ecx, dword [0x1000f010]
mov esi, dword [0x1000f014]
cdq
add eax, ecx
adc edx, esi
mov esi, dword [ebp - 0x48]
xor eax, edi
xor edx, ebx
mov edi, dword [ebp - 0x44]
mov dword [ebp - 0x9c], eax
movsx eax, byte [0x1000f003]
mov dword [ebp - 0x68], edx
cdq
sub eax, dword [ebp - 0x9c]
mov dword [ebp - 0x74], eax
sbb edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x48]
xor esi, dword [0x1000f078]
xor edi, dword [0x1000f07c]
sub eax, esi
mov ecx, dword [ebp - 0x44]
sbb ecx, edi
mov dword [ebp - 0x48], eax
cmp word [0x1000f0a0], 0
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x44], ecx
mov byte [ebp - 0x8f], 0x65
jne 0x10005572
mov ebx, 1
xor edx, edx
jmp 0x10005589
xorps xmm0, xmm0
movlpd qword [ebp - 0xa0], xmm0
mov edx, dword [ebp - 0x9c]
mov ebx, dword [ebp - 0xa0]
movsx ecx, word [0x1000f04c]
movzx eax, word [0x1000f044]
cmp ecx, eax
jle 0x100055a4
mov esi, 1
xor edi, edi
jmp 0x100055bb
xorps xmm0, xmm0
movlpd qword [ebp - 0xa0], xmm0
mov edi, dword [ebp - 0x9c]
mov esi, dword [ebp - 0xa0]
push dword [ebp - 0x68]
push dword [ebp - 0x74]
push edx
push ebx
call fcn.1000d360
add eax, esi
adc edx, edi
or eax, edx
je 0x1000567e
mov cl, byte [ebp - 0xd]
shl cl, 4
mov byte [0x1000f005], cl
mov ebx, dword [ebp - 0x94]
mov eax, dword [ebp - 0xc0]
sub esp, 0x10
add al, byte [ebp - 0x54]
mov ecx, dword [ebp - 0x54]
sub cl, byte [ebp - 0x54]
movsx edx, cl
mov ecx, dword [ebp - 0x54]
add cl, byte [ebp - 0x7c]
movsx eax, al
imul edx, eax
movsx eax, dl
movsx edx, cl
mov ecx, dword [ebp - 0x7c]
imul edx, eax
xor cl, 0x87
movsx ecx, cl
movsx eax, dl
imul ecx, eax
mov al, byte [ebp - 1]
add cl, 0x32
mov byte [ebp - 0x89], cl
call fcn.10001940
mov word [0x1000f070], ax
mov ecx, 0x65b4
mov ax, word [0x1000f080]
add esp, 0x10
sub ax, cx
mov byte [ebp - 0x88], 0x2e
mov word [0x1000f04c], ax
movzx eax, word [0x1000f090]
mov esi, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
cdq
mov byte [ebp - 0x8c], 0x65
cmp edx, ecx
jb 0x100056ed
ja 0x10005677
cmp eax, esi
jb 0x100056ed
mov ecx, 1
jmp 0x100056ef
mov eax, dword [ebp - 0x4c]
or eax, dword [ebp - 0xb8]
je 0x100055e0
movzx eax, word [0x1000f090]
mov ebx, dword [ebp - 0x94]
imul eax, ebx
cdq
mov ecx, eax
mov esi, edx
movzx eax, word [0x1000f048]
cdq
add eax, ecx
mov ecx, 0x614d
adc edx, esi
add eax, dword [ebp - 0x74]
adc edx, dword [ebp - 0x68]
add eax, 1
mov dword [ebp - 0x28], eax
adc edx, 0
mov dword [ebp - 0x24], edx
movzx eax, byte [ebp - 1]
add ax, cx
movzx edx, ax
movzx eax, word [0x1000f090]
movsx ecx, word [0x1000f078]
cwde
imul eax, ecx
and ax, dx
mov word [ebp - 0xc], ax
jmp 0x100055e6
xor ecx, ecx
cmp word [0x1000f090], 8
sbb eax, eax
inc eax
cmp ecx, eax
jae 0x10005728
movzx eax, word [section..data]
cdq
sub eax, 0x716edc2a
mov dword [0x1000f010], eax
mov eax, dword [0x1000f020]
sbb edx, 0x8e483
mov dword [0x1000f014], edx
mov dword [0x1000f098], eax
jmp 0x1000573d
movsx eax, word [ebp - 0xc]
add eax, eax
cdq
mov dword [ebp - 0x48], eax
mov al, byte [ebp - 0x10]
xor al, 0x29
mov dword [ebp - 0x44], edx
mov byte [ebp - 1], al
mov eax, dword [ebp - 0xbc]
mov eax, dword [0x1000f06c]
mov byte [ebp - 0x84], 0
cmp dword [ebp - 0x50], eax
jbe 0x10005769
sub esp, 8
call fcn.100013c0
mov word [ebp - 0xc], ax
add esp, 8
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
push str.CreateFileW
lea eax, [ebp - 0x90]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
movzx ecx, word [0x1000f074]
mov edi, eax
cmp ebx, ecx
jge 0x10005839
movsx edx, byte [0x1000f01d]
movzx ecx, word [0x1000f064]
cmp edx, ecx
jne 0x100057c4
movzx eax, byte [0x1000f01b]
movzx ecx, byte [0x1000f01b]
add ecx, eax
mov eax, dword [ebp - 0x50]
add al, cl
mov byte [0x1000f01b], al
jmp 0x10005877
movzx eax, byte [0x1000f007]
mov esi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
cdq
cmp edx, ecx
jg 0x100057e3
jl 0x100057dc
cmp eax, esi
jae 0x100057e3
mov eax, 1
jmp 0x100057e5
xor eax, eax
mov edx, dword [ebp - 0x34]
movsx ecx, dx
cmp ecx, eax
je 0x10005877
movsx ecx, byte [0x1000f01e]
xor eax, eax
cmp word [0x1000f070], ax
mov dword [0x1000f040], ecx
sete al
xor edx, edx
cmp ecx, eax
movzx eax, word [0x1000f0a0]
sete dl
sub edx, eax
movzx eax, word [0x1000f064]
add edx, dword [0x1000f098]
imul edx, eax
neg edx
sbb edx, edx
inc edx
mov dword [0x1000f098], edx
jmp 0x10005877
mov ecx, dword [0x1000f008]
mov eax, dword [0x1000f00c]
or ecx, eax
je 0x10005877
cmp word [0x1000f094], 0
mov ax, word [0x1000f03c]
jne 0x1000585c
mov ax, word [ebp - 0x18]
mov ecx, dword [ebp - 0x30]
mov byte [ebp - 0x10], al
mov eax, dword [ebp - 0x2c]
mov eax, 0xf06f
movzx ecx, cx
imul ecx, eax
add word [0x1000f070], cx
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
push dword [ebp - 0xb0]
call edi
mov edi, eax
mov dword [ebp - 0x54], edi
cmp edi, 0xffffffff
je 0x10005ffc
mov edx, dword [ebp - 0x28]
mov eax, 0x4e86
mov ecx, dword [ebp - 0x24]
sub dx, ax
mov word [0x1000f090], dx
mov esi, dword [0x1000f028]
mov ecx, dword [0x1000f02c]
mov bl, byte [0x1000f006]
movzx eax, bl
cdq
cmp edx, ecx
jb 0x100058db
ja 0x100058d4
cmp eax, esi
jb 0x100058db
mov ecx, 1
jmp 0x100058dd
xor ecx, ecx
cmp bl, 0x20
sbb eax, eax
inc eax
cmp ecx, eax
jb 0x10005900
cmp dword [0x1000f09c], 0
je 0x10005906
mov dword [ebp - 0x4c], 0xa17d9410
mov dword [ebp - 0x24], 0xffffffff
jmp 0x10005906
mov ax, word [0x1000f054]
movzx eax, byte [0x1000f002]
add eax, dword [ebp - 0x78]
mov esi, dword [ebp - 0x40]
not eax
mov ecx, dword [ebp - 0x3c]
cdq
add esi, eax
adc ecx, edx
or esi, ecx
jne 0x10005928
lea eax, [esi + 1]
xor ecx, ecx
jmp 0x10005936
xorps xmm0, xmm0
movlpd qword [ebp - 0x28], xmm0
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov dword [0x1000f058], eax
lea eax, [ebp - 0x90]
push str.GetFileSizeEx
push eax
mov dword [0x1000f05c], ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea ecx, [ebp - 0xd0]
push ecx
push edi
call eax
test eax, eax
je 0x100059ea
movups xmm0, xmmword [str.__ExceptionPtrReth]
mov eax, dword [0x1000e0b0]
mov dword [ebp - 0xf0], eax
mov ax, word [0x1000e0b4]
movups xmmword [ebp - 0x110], xmm0
mov word [ebp - 0xec], ax
lea eax, [ebp - 0x110]
movups xmm0, xmmword [0x1000e0a0]
push eax
movups xmmword [ebp - 0x100], xmm0
call dword [sym.imp.KERNEL32.dll_lstrlenW]
movzx ecx, byte [0x1000f01b]
mov bl, al
push dword [ebp - 0xd0]
sub ecx, 0x3599c8cf
mov word [ebp - 0x10], bx
push 0
mov dword [0x1000f078], ecx
mov dword [0x1000f07c], 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 0x38], eax
jmp 0x100059ee
mov bx, word [ebp - 0x10]
mov dword [0x1000f028], 0x7614
mov dword [0x1000f02c], 0
mov esi, dword [0x1000f028]
mov edi, dword [0x1000f02c]
mov ecx, dword [ebp - 0x40]
add esi, ecx
mov edx, dword [ebp - 0x3c]
adc edi, edx
cmp dword [0x1000f078], esi
jne 0x10005ba5
cmp dword [0x1000f07c], edi
jne 0x10005ba5
mov esi, 0xffff
mov edi, 0xa17d94ad
nop word [eax + eax]
movsx eax, byte [ebp - 3]
xor edx, edx
movzx ecx, ax
movzx eax, word [0x1000f04c]
cmp cx, ax
mov al, byte [ebp - 3]
setl dl
xor ecx, ecx
mov cl, 1
cmp edx, ecx
ja 0x10005a92
cmp word [ebp - 0xc], 0
je 0x10005b39
mov eax, dword [ebp - 0x1c]
mov ecx, dword [0x1000f09c]
sub eax, 0x2d86
mov word [0x1000f094], ax
mov eax, dword [ebp - 0x1c]
add eax, 0x27e82ec
add eax, ecx
mov dword [ebp - 0x1c], eax
jmp 0x10005b39
test edi, edi
jne 0x10005acf
movsx eax, bl
sub eax, 0x14
cdq
mov dword [0x1000f028], eax
mov dword [0x1000f02c], edx
mov eax, dword [0x1000f058]
mov ecx, dword [0x1000f05c]
mov edx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x2c]
sub edx, eax
mov eax, dword [ebp - 0x30]
sbb esi, ecx
mov ecx, dword [ebp - 0x2c]
and eax, edx
and ecx, esi
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], ecx
jmp 0x10005b34
mov eax, dword [0x1000f020]
or eax, dword [0x1000f024]
jne 0x10005ae3
mov eax, 1
jmp 0x10005ae5
xor eax, eax
cmp dword [0x1000f09c], eax
jbe 0x10005af6
mov edx, 1
xor ecx, ecx
jmp 0x10005b04
xorps xmm0, xmm0
movlpd qword [ebp - 0x28], xmm0
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x40]
mov esi, dword [ebp - 0x3c]
cmp edx, eax
jne 0x10005b12
cmp ecx, esi
je 0x10005b34
mov ax, word [ebp - 0xc]
inc ax
cmp byte [0x1000f01d], 0
mov word [ebp - 0xc], ax
mov eax, dword [0x1000f098]
jne 0x10005b31
movzx eax, byte [0x1000f01a]
mov dword [ebp - 0x1c], eax
mov esi, 0xffff
movsx ecx, word [ebp - 0xc]
movzx eax, word [0x1000f094]
add ecx, 0x54
cmp eax, ecx
jne 0x10005ba2
mov ecx, dword [0x1000f008]
add edi, ecx
mov eax, dword [0x1000f00c]
add word [0x1000f064], si
mov dword [0x1000f028], 0x7614
mov dword [0x1000f02c], 0
mov edx, dword [0x1000f028]
mov esi, dword [0x1000f02c]
mov eax, dword [ebp - 0x40]
add edx, eax
mov ecx, dword [ebp - 0x3c]
adc esi, ecx
cmp dword [0x1000f078], edx
jne 0x10005ba2
cmp dword [0x1000f07c], esi
mov esi, 0xffff
je 0x10005a40
mov dword [ebp - 0x80], edi
mov eax, dword [ebp - 0x64]
imul eax, dword [ebp - 0x14]
mov edx, dword [ebp - 8]
add edx, dword [ebp - 0xa4]
or edx, eax
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 8]
mov ecx, dword [ebp - 8]
imul ecx, eax
mov eax, dword [ebp - 0x64]
imul eax, ecx
cmp eax, edx
je 0x10005f88
movzx eax, word [ebp - 0x5c]
add eax, 0xc5
mov dword [ebp - 0x1c], eax
mov eax, dword [0x100b0edc]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
add eax, 0xa585
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x34]
add eax, 0x4bc7
mov dword [ebp - 0x7c], eax
call fcn.100010d0
mov bl, al
test bl, bl
je 0x10005dd8
push ecx
call fcn.10001000
add esp, 4
mov ecx, 0x2f
cmp ecx, eax
sbb ecx, ecx
xor edx, edx
inc ecx
cmp edx, eax
sbb eax, eax
inc eax
cmp eax, ecx
jb 0x10005c73
movzx eax, word [0x1000f090]
cdq
cmp eax, dword [ebp - 0xa8]
jne 0x10005c44
cmp edx, dword [ebp - 0xac]
jne 0x10005c44
xor edx, edx
jmp 0x10005c49
mov edx, 1
movsx eax, word [0x1000f080]
xor ecx, ecx
cmp dword [ebp - 0x80], eax
setg cl
cmp edx, ecx
jbe 0x10005d78
movsx eax, byte [ebp - 3]
add eax, 0x6887e43
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 0
mov bx, word [ebp - 0x10]
mov eax, dword [ebp - 0x34]
sub esp, 8
add eax, 0xac61
mov dword [ebp - 0x14], eax
mov al, byte [0x1000f007]
call fcn.100012d0
mov byte [ebp - 2], al
add esp, 8
cmp byte [ebp - 2], 0
jne 0x10005ca7
movsx eax, byte [ebp - 2]
sub eax, 0x3eea
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x7c]
add ecx, dword [ebp - 0x7c]
imul eax, dword [ebp - 0x14], 0xf373
xor eax, ecx
add eax, 0x5c12eb40
cmp dword [ebp - 0x38], 0
mov dword [ebp - 0x14], eax
je 0x10005f88
mov ecx, dword [0x1000f008]
mov eax, dword [0x1000f00c]
shld eax, ecx, 4
shl ecx, 4
mov word [0x1000f080], cx
movsx eax, word [0x1000f050]
add eax, 0x716ce2e8
mov dword [ebp - 0x28], eax
mov eax, dword [0x100b0edc]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
call fcn.100010d0
cmp byte [ebp - 0xd], 0
movsx eax, al
cdq
mov dword [0x1000f008], eax
mov dword [0x1000f00c], edx
jne 0x10005e51
cmp word [ebp - 0xc], 0
jne 0x10005e51
mov ecx, dword [0x1000f010]
mov eax, dword [0x1000f014]
add ecx, 0x8be3d46c
adc eax, 0x7391b
or ecx, eax
jne 0x10005e51
movzx eax, byte [0x1000f006]
mov ecx, 0x2f9e
add ax, cx
mov word [ebp - 0x18], ax
mov dword [0x1000f008], 0xc
mov dword [0x1000f00c], 0
jmp 0x10005e72
mov eax, dword [0x1000f088]
mov esi, 0x6e95ae05
or eax, dword [0x1000f08c]
je 0x10005d8f
mov esi, 0x6e95ae04
mov ecx, dword [0x1000f028]
mov eax, dword [0x1000f02c]
movsx eax, bl
not eax
imul edx, eax, 0x928a
movzx eax, byte [0x1000f006]
xor eax, ecx
movzx ecx, word [ebp - 0x5c]
inc edx
imul edx, esi
sub edx, eax
movzx eax, word [ebp - 0x5c]
add ecx, edx
add eax, ecx
mov dword [0x1000f06c], eax
mov al, byte [ebp - 0x70]
inc al
add al, byte [0x1000f01c]
mov byte [ebp - 0x58], al
jmp 0x10005c73
mov bx, word [ebp - 0x10]
test bl, bl
jne 0x10005c77
mov ax, word [0x1000f0a4]
cmp byte [0x1000f01e], bl
je 0x10005e1d
mov eax, dword [ebp - 0x1c]
mov ecx, 0x5b8e
xor al, 0x57
mov byte [0x1000f004], al
movzx eax, word [section..data]
sub ax, word [str._k]
add ax, cx
mov word [section..data], ax
jmp 0x10005c77
cmp word [ebp - 0xc], 0
je 0x10005c77
mov ax, word [0x1000f050]
mov ecx, 0x5594
add ax, word [0x1000f070]
add ax, cx
mov word [0x1000f050], ax
mov eax, dword [ebp - 0x4c]
mov word [0x10189750], ax
jmp 0x10005c77
mov ecx, dword [0x1000f06c]
movsx eax, bl
cmp eax, ecx
jne 0x10005e72
mov ax, word [0x1000f054]
mov ecx, 0xd0
sub ax, cx
mov word [0x1000f070], ax
mov eax, dword [ebp - 0x34]
add eax, 0x2ba
mov dword [ebp - 0x80], eax
movzx eax, word [0x1000f090]
mov ecx, dword [ebp - 0x50]
imul ecx, eax
mov eax, dword [ebp - 0x50]
add eax, ecx
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x6c], eax
mov ecx, dword [0x1000f058]
mov eax, dword [ebp - 0x58]
movzx eax, al
cdq
neg eax
mov dword [0x1000f088], eax
mov eax, dword [0x1000f05c]
adc edx, 0
mov eax, dword [ebp - 0x34]
neg edx
sub cl, 0x58
mov dword [0x1000f08c], edx
add eax, 0x284
mov byte [0x1000f01e], cl
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 0x14]
imul edx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x80]
sub edx, eax
mov eax, dword [ebp - 0x6c]
or eax, dword [ebp - 0x6c]
add ecx, edx
cmp ecx, eax
je 0x10005f88
mov eax, dword [0x1000f040]
movzx ecx, byte [0x1000f006]
add eax, 0xf7e7
mov dword [0x1000f078], eax
dec ecx
movzx eax, byte [0x1000f01a]
imul ecx, eax
movsx eax, word [0x1000f050]
mov dword [0x1000f07c], 0
push str.ReadFile
add eax, ecx
cdq
mov dword [0x1000f058], eax
lea eax, [ebp - 0x90]
push eax
mov dword [0x1000f05c], edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x1c]
movsx ecx, byte [ebp - 0xd]
neg edx
mov ebx, dword [ebp - 0x38]
mov edi, dword [ebp - 0x54]
sbb edx, edx
inc edx
push 0
add edx, ecx
lea ecx, [ebp - 0xd4]
push ecx
push dword [ebp - 0xd0]
mov dword [0x1000f040], edx
push ebx
push edi
call eax
mov ecx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0xd0]
mov dword [ecx], eax
jmp 0x10005f8e
mov edi, dword [ebp - 0x54]
mov ebx, dword [ebp - 0x38]
push str.CloseHandle
lea eax, [ebp - 0x90]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
mov eax, dword [ebp - 0x78]
cmp dword [ebp - 0x1c], eax
jne 0x10005fd2
movzx ecx, word [0x1000f03c]
cmp ecx, dword [0x1000f060]
jb 0x10005ff0
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
push edi
call esi
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [ebp - 0x58], 0
jne 0x10005fdd
mov al, byte [0x1000f004]
mov al, byte [ebp - 2]
mov eax, dword [0x1000f028]
mov ecx, dword [0x1000f02c]
mov al, byte [0x1000f007]
push edi
call esi
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret