Function at 0x1061bea
Capabilities:
Authenticate hmac

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
xor esi, esi
push edi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0xc], esi
mov dword [ebp - 8], esi
mov dword [ebp - 4], esi
cmp dword [ebp + 0xc], esi
je 0x1061ca1
call fcn.0103bfc7
in al, 0x14
rcl byte ss:[esi]
add byte [eax], al
mov al, byte [0x203614e8]
mov al, 0xc7
sub al, byte [eax + 0x2eabfe8]
add byte [ebx + 0x70328f], al
xor byte [0x3581fcf0], 0x70
xchg ebp, eax
add byte [eax], al
xor byte [ecx], bh
jne 0x1061c4c
je 0x1061ca1
call fcn.010906e8
push ss
jl 0x1061c77
jo 0x1061c84
invalid
invalid
add byte [eax], al
sar byte [ecx], 1
jne 0x1061c6a
je 0x1061ca1
cmp dword [ebp + 0x18], esi
je 0x1061ca1
call fcn.010906e8
sbb cl, byte [ebp - 0x68f7fff4]
and byte ss:[edi + edx*4], al
add al, 0x97
adc byte ss:[ebx], dl
add byte [eax], dh
call fcn.0103c773
popfd
add byte [eax], al
mov al, byte [0x403668b4]
sar dword [ecx + 0x68b8d00f], 0x36
mov al, byte [0x284a89e8]
add byte [eax], ch
xchg dword [0x2240], esi
mov al, byte [0x5031ebaf]
push 0x89e8a036
dec edx
sub byte [eax], al
sub byte [edi + 0x224035], al
add byte [eax + 0x5031ebaf], ah
and al, 0x87
xor eax, 0x1c753920
jne 0x1061cc0
call fcn.0103bfc7
cmp bh, bl
xor eax, 0x19d0
xor byte [edi + ebx*8], bh
xor eax, 0x2d5be550
sar byte [ebx - 0x7ff8ffa9], 1
jmp 0x1061ff4
call fcn.0103c773
jge 0x1061cc7
add al, al
jl 0x1061c50
adc byte ss:[esi - 0x7a7ffff2], 0x36
sub al, 0xb1
cmpsb byte [esi], byte es:[edi]
push cs
add byte [eax - 0x177fc97b], al
mov cl, 0xa6
std
push dword [eax + esi + 0xc02036]
add byte [eax + 0x55], dh
xor byte [esi], dh
and al, al
add byte [eax], al
jo 0x1061d38
das
sub dword [eax + 0x503630b0], esi
push 0x10
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
lea ecx, [ebp - 4]
mov edi, eax
call fcn.01043265
call fcn.0103c38b
je 0x1061ccf
shl byte ss:[edi], 1
add byte [eax], al
jo 0x1061d67
clc
or byte [eax], dh
jo 0x1061cdb
and al, ch
scasd eax, dword es:[edi]
mov byte [0x4784fffd], al
loopne 0x1061d33
add byte [eax], al
adc byte [eax - 0xfbfc9b9], cl
sub edx, dword [ecx]
sar byte [ebx], 0xfe
jne 0x1061d39
mov dword [ebp - 4], esi
mov ebx, 0x8007000e
jmp 0x1061ff4
sub cl, 0xbb
add al, byte [eax]
add byte [ebp - 0xaf0fbb], cl
jne 0x1061d4c
lea eax, [ebp - 0x10]
push eax
push dword [ebp + 0xc]
mov dword [ebp - 4], edi
call fcn.0104bb5f
mov ebx, eax
cmp ebx, esi
jl 0x1061ff4
call fcn.0110c578
cmp byte [ebx + 0x51b036], dl
add byte [eax + 0x3c], dl
xchg ebx, eax
add al, 0xe2
or al, 0xb0
call fcn.0103bfc7
xchg esp, eax
sbb al, 0x36
rol byte [edi], 1
add byte [eax], al
push eax
cwde
sbb al, 0x36
add al, cl
jae 0x1061da5
shl byte [ecx + 0x138a9c8], 1
cmp eax, esi
je 0x1061db5
call fcn.01102ea6
or al, byte [eax]
mov al, 9
invalid
add al, dh
push cs
xor dword [esi], ebp
sal byte [eax - 0x741fca33], 1
fdivr dword [ebx]
fidiv word [ebp + 0x34]
call fcn.01298d5a
inc esp
jae 0x1061df3
pushal
inc ebx
add byte [eax], al
loopne 0x1061e03
jae 0x1061dfb
ror byte [ebx + 0x73], 1
verw ax
clc
mov eax, dword [0x4760fffd]
nop
pop ss
add byte [eax], al
pushal
inc edi
loopne 0x1061e0f
sub al, 0x11
mov al, 0xbb
invalid
jne 0x1061d88
invalid
jae 0x1061da5
shr byte [ecx], 0
add byte [eax], al
nop
and esi, dword [esi]
rcl byte [ebx + 0x458b9036], 0xf0
lea ecx, [ebp - 0x18]
push ecx
push 0x1005670
call 0x57768665
add byte [ecx], al
push eax
call fcn.010db00a
call fcn.0103c773
adc eax, 0x14400000
pop es
add al, ch
push edx
test eax, 0x15fffd
add byte [eax + 0x14], al
mov al, 0xf0
or edx, dword [eax]
inc eax
sbb byte [esi + 0x36], ah
jo 0x1061e1a
jo 0x1061e44
or al, byte [eax]
cmp al, 0x72
xor eax, 0x339296b0
nop
jp 0x1061e40
add byte [eax], ah
inc eax
jb 0x1061e7a
xor eax, 0x7cc085f0
pop ecx
call fcn.0103bfc7
pop esp
loope 0x1061e88
invalid
adc byte [eax + eax - 0x1e9f9000], ch
sub byte ss:[esi], 0xb7
add al, 0x70
call fcn.0110c578
pop eax
lodsb al, byte [esi]
and byte ss:[0x5ce00000], ch
lodsb al, byte [esi]
loopne 0x1061df1
ror byte [edx], cl
adc al, ch
dec esi
mov eax, dword [0xfca8fffd]
cld
xor eax, 0x7f0
and byte [esp + edi*8 + 0x29da035], ch
sub al, 0xf0
call fcn.01347b48
pop es
test al, 0xcd
add byte [eax], 0
invalid
inc eax
add byte [eax], al
sar ah, 0x78
xor eax, 0x35790090
push eax
cmp dword [ebp - 0x18], esi
jne 0x1061eec
call fcn.010906e8
pop esp
xchg esi, eax
add al, 0xa0
js 0x1061e92
xor byte ss:[esp + 0x36], dh
add byte [esi], dl
add byte [eax], al
nop
call fcn.0103c773
add byte es:[eax], al
nop
call 0x4965527
inc ebp
adc byte [eax], al
in al, dx
popal
xor al, ch
push ss
call 0x7a0b1ed6
xor byte [eax + 4], al
lahf
xor eax, 0x359f00f0
invalid
call fcn.01102ea6
dec esp
jmp 0x1061f2a
jl 0x1061ff4
mov ecx, dword [ebp - 0xc]
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 8]
push eax
call fcn.0104df1f
call fcn.0103c773
and al, 0
add byte [eax + 0x74], dh
xor eax, 0x33fc1ec0
mov al, 0x78
xor eax, 0x3bd88bb0
fimul word [edi]
mov word [ebp - 0x18000000], ss
test bh, ah
add al, byte [eax]
test eax, 0x70900bcc
sahf
adc byte ss:[esi + ebx*4 + 0x36], ch
loopne 0x1061fa6
add byte [eax], al
or byte [ebx + 0x6a570c75], 0x10
push dword [ebp - 8]
push esi
call fcn.01049238
call fcn.012e6715
mov word [ebx + 0x35], gs
mov al, 0x8b
add byte [eax], al
pushal
sbb eax, 0x881033cf
imul esi, dword [0x85d88b60], 0xffffffdb
jl 0x1061fdd
call fcn.0110c578
pushfd
pushfd
xor eax, 0x43b0
mov al, 0x43
add byte [eax], al
shl byte [eax + 0x5a40359c], 1
lcall 0x8bf8, 0x458b7030
dec ebp
adc al, 0x83
clc
add byte [ebx - 0x76ff039b], al
add dword [ebx + 0x30891045], ecx
mov eax, dword [ebp + 0x1c]
mov dword [eax], edi
mov eax, dword [ebp + 0x18]
mov dword [eax], 0x10
xor esi, esi
jmp 0x1062082
call fcn.0103bc4e
mov ah, 0x6a
xor eax, 0x5810
sal byte [eax + 0x1360356a], 0xda
xor eax, dword [eax + 0x33]
imul al
sbb al, 0x47
sub byte [eax], al
call fcn.012e6715
dec eax
call 0x1959034
add al, ah
adc al, 0xe7
sub al, 0x60
inc esp
call 0x6bef0040
movsd dword es:[edi], dword [esi]
or al, byte [eax]
mov al, byte [0xa0035c8]
add byte [eax], al
shl byte [eax + ecx*8 - 0x7ac52fcb], 1
and byte cs:[ecx + 0x136ec90], ah
cmp eax, 0x136ec90
je 0x1062082
test byte [eax + 0x3c], 2
je 0x1062082
call fcn.010906e8
mov ebp, 0xcc3009b4
mov edx, 0xbac81036
adc byte ss:[edx], bh
add byte [eax], al
pushal
call fcn.0103c38b
mov al, byte [0x17803653]
add byte [eax], al
and byte [ebx - 0x49], dl
adc byte [eax - 0x64], dh
push ebx
and al, ch
jmp 0x34064eba
lea ecx, [ebp - 4]
call fcn.01043265
call fcn.0103c773
push edi
add byte [eax], al
xor byte [ebp + 0x36], cl
adc byte [eax + 0x505029fd], ch
and eax, 0xb6e8c036
insb byte es:[edi], dx
and eax, dword [eax]
sbb al, 0x7e
xor eax, 0x1fe30
loopne 0x10620c5
jle 0x10620e4
shl byte [ecx], 0x18
xor esp, dword [eax - 0x73]
dec ebp
clc
call fcn.01043265
call fcn.0103bc4e
mov ah, 0xb1
shr ah, 1
add al, al
mov al, 0xb1
push eax
mov edi, 0x8dc00a78
dec ebp
hlt
in al, dx
add dword [eax], eax
sal byte [eax - 0x40afc94f], 0x78
or al, al
lea ecx, [ebp - 0xc]
call fcn.01046724
lea ecx, [ebp - 0x10]
call fcn.01045b47
call fcn.01102ea6
or al, byte [eax]
sbb byte [ebp - 0x43429fca], dl
or al, 0
movsd dword es:[edi], dword [esi]
add al, byte [eax]
add byte [edx*4 - 0x54175fca], bl
or eax, 0x7c58000a
nop
pop ds
push es
mov esi, cr2
add byte [eax], al
mov al, 0x5c
jl 0x1062140
push eax
mov ecx, dword [ebp - 0x14]
cmp ecx, esi
je 0x106212c
call fcn.01298d5a
xor al, 0x66
xor eax, 0x1ec80
loopne 0x1062150
xor ax, 0x79d0
adc eax, 0xc3e8f034
invalid
call fcn.0103c38b
les ebx, [0x377036]
add byte [eax + 0x702a6835], al
rcr byte [0x2e8f036], 0x5a
add byte cs:[esi + 0x4e80af7f], dh
add dword [eax], eax
sar ah, 0xff
invalid
xor eax, 0x36000030
loopne 0x10621b6
pop esi
mov eax, ebx
pop ebx
leave
ret 0x18
add al, al
xor al, 1
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x44], edx
jb 0x1062206
mov edx, dword [0x10fb370]
mov ecx, dword [0x1007420]
imul ecx, edx
mov edx, dword [ebp - 0x44]
lea ecx, [ecx + section..data]
cmp edx, ecx
jae 0x1062206
mov eax, edx
mov ecx, dword [0x10fb370]
sub eax, section..data
xor edx, edx
div ecx
mov ecx, dword [0x10fb370]
imul ecx, eax
mov edx, dword [ebp - 0x44]
lea ecx, [ecx + section..data]
mov eax, dword [ebp - 0x40]
jmp 0x1062208
xor ecx, ecx
test ecx, ecx
jne 0x1062214
and edx, 0xffff0000
mov ecx, edx
sub eax, ecx
add eax, 0xffffffc0
jns 0x106221d
xor eax, eax
add eax, ecx
push 0x40
pop edx
mov byte [eax], 0
inc eax
dec edx
jne 0x1062222
lea eax, [esi + ebx]
mov dword [ebp - 0x40], eax
mov eax, dword [0x10fb370]
sub eax, ebx
mov dword [ebp - 0x28], esi
sub dword [ebp - 0x28], edi
lea esi, [eax + 1]
xor eax, eax
mov edx, esi
test esi, esi
je 0x106226e
mov ebx, dword [0x138b4cc]
imul ebx, ebx, 0x343fd
add ebx, 0x269ec3
mov dword [0x138b4cc], ebx
shr ebx, 0x10
shl eax, 0x10
shr edx, 0x10
or eax, ebx
test edx, edx
jne 0x1062247
xor edx, edx
div esi
lea eax, [ecx + edx]
push eax
push dword [ebp - 0x4c]
mov dword [ebp - 0x44], eax
push dword [ebp - 0x28]
mov eax, 0x585b5646
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax + 4]
mov esi, dword [eax]
lea eax, [ebp - 0x80]
push eax
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x7c], ebx
mov byte [ebp - 0xd], 0
mov eax, 0x58765fd6
mov ecx, dword [0x102c94c]
mov eax, 0xfffffff
and dword [ebp - 0x20], 0
and dword [ebp - 0x1c], 0
and ebx, eax
mov edx, ebx
and esi, eax
add esi, edi
mov eax, edi
mov ebx, esi
add esp, 0x10
sub eax, ecx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x30], eax
jne 0x106231d
and dword [ebp - 0x14], 0
test edx, edx
jbe 0x10624fc
mov esi, 0x69eb8044
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax + ebx]
sub ecx, esi
add dword [ebp - 0x20], ecx
add ecx, dword [ebp - 0x1c]
mov eax, ecx
imul eax, eax, 0x7680
rol eax, 0xc
ror ecx, 0xc
xor eax, ecx
imul eax, eax, 0x96147fbc
imul eax, eax, 0x96147fbc
add dword [ebp - 0x20], eax
inc dword [ebp - 0x14]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x14], edx
jb 0x10622df
jmp 0x10624fc
lea eax, [edx + ebx]
mov ecx, ebx
mov edx, dword [0x100003c]
mov dword [ebp - 0x38], eax
lea edx, [edx + 0x10000a0]
sub ecx, edi
mov eax, dword [edx]
mov ebx, ecx
mov esi, ecx
mov edx, dword [edx + 4]
mov dword [ebp - 0x3c], edx
mov edx, 0xfffff000
and ebx, edx
sub esi, ebx
mov dword [ebp - 0x24], esi
mov esi, dword [ebp - 0x2c]
add ecx, esi
mov esi, ecx
and esi, edx
sub ecx, esi
add eax, edi
mov dword [ebp - 0x5c], ecx
mov edx, eax
mov ecx, dword [ebp - 0x3c]
add ecx, eax
cmp eax, ecx
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x58], ecx
je 0x1062378
cmp dword [edx], ebx
jae 0x1062378
add edx, dword [edx + 4]
cmp edx, dword [ebp - 0x58]
jne 0x106236c
and dword [ebp - 0x50], 0
cmp edx, dword [ebp - 0x58]
je 0x10623aa
cmp dword [edx], ebx
jne 0x10623aa
mov eax, dword [edx + 4]
sub eax, 8
shr eax, 1
je 0x10623aa
lea ecx, [edx + 8]
movzx esi, word [ecx]
and esi, 0xfff
cmp esi, dword [ebp - 0x24]
jae 0x10623aa
inc dword [ebp - 0x50]
inc ecx
inc ecx
cmp dword [ebp - 0x50], eax
jne 0x1062392
mov esi, 0x69eb8044
mov ecx, dword [ebp - 0x60]
cmp edx, dword [ebp - 0x58]
je 0x10624bc
cmp dword [edx], ecx
ja 0x10624bc
mov eax, dword [edx + 4]
lea ebx, [eax - 8]
shr ebx, 1
cmp dword [ebp - 0x50], ebx
jne 0x10623e9
add edx, eax
cmp edx, dword [ebp - 0x58]
je 0x10624bc
cmp dword [edx], ecx
ja 0x10624bc
and dword [ebp - 0x50], 0
jmp 0x10623c3
cmp dword [edx], ecx
jne 0x1062403
mov eax, dword [ebp - 0x50]
movzx eax, word [edx + eax*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x5c]
jae 0x10624bc
mov eax, dword [ebp - 0x50]
mov ebx, 0xf000
inc dword [ebp - 0x50]
test word [edx + eax*2 + 8], bx
je 0x10623b2
mov ecx, dword [edx]
movzx eax, word [edx + eax*2 + 8]
and eax, 0xfff
lea eax, [eax + ecx + 0x1000000]
mov dword [ebp - 0x24], eax
xor ecx, ecx
sub eax, dword [ebp - 0x14]
mov dword [ebp - 0x2c], eax
je 0x106246c
mov eax, dword [ebp - 0x14]
movzx ebx, byte [eax + ecx]
sub ebx, esi
add dword [ebp - 0x20], ebx
add ebx, dword [ebp - 0x1c]
mov eax, ebx
imul eax, eax, 0x7680
rol eax, 0xc
ror ebx, 0xc
xor eax, ebx
imul eax, eax, 0x96147fbc
imul eax, eax, 0x96147fbc
add dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
inc ecx
cmp ecx, dword [ebp - 0x2c]
jb 0x1062435
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
sub eax, dword [ebp - 0x30]
mov dword [ebp - 0x74], eax
xor ecx, ecx
movzx ebx, byte [ebp + ecx - 0x74]
sub ebx, esi
add dword [ebp - 0x20], ebx
add ebx, dword [ebp - 0x1c]
mov eax, ebx
imul eax, eax, 0x7680
rol eax, 0xc
ror ebx, 0xc
xor eax, ebx
imul eax, eax, 0x96147fbc
imul eax, eax, 0x96147fbc
add dword [ebp - 0x20], eax
inc ecx
mov dword [ebp - 0x1c], eax
cmp ecx, 4
jb 0x1062479
mov eax, dword [ebp - 0x24]
add eax, 4
mov dword [ebp - 0x14], eax
jmp 0x10623af
mov ebx, dword [ebp - 0x38]
xor edx, edx
sub ebx, dword [ebp - 0x14]
je 0x10624fc
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax + edx]
sub ecx, esi
add dword [ebp - 0x20], ecx
add ecx, dword [ebp - 0x1c]
mov eax, ecx
imul eax, eax, 0x7680
rol eax, 0xc
ror ecx, 0xc
xor eax, ecx
imul eax, eax, 0x96147fbc
imul eax, eax, 0x96147fbc
add dword [ebp - 0x20], eax
inc edx
mov dword [ebp - 0x1c], eax
cmp edx, ebx
jb 0x10624c6
xor ebx, ebx
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x20]
mov byte [ebp + eax - 0xc], cl
inc eax
cmp eax, 8
jb 0x1062500
mov eax, 0xdbcd0647
mov esi, dword [ebp - 0x64]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x4c]
and eax, 7
mov dword [ebp - 0x3c], eax
je 0x1062935
cmp eax, ebx
mov edi, dword [ebp - 0x28]
mov dword [ebp - 0x14], ebx
not edi
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x18], ebx
jle 0x106256b
push 0x38
pop edx
cmp dword [ebp - 0x18], 4
movzx ebx, byte [esi]
jge 0x1062558
lea ecx, [edx - 0x20]
shl ebx, cl
or dword [ebp - 0x30], ebx
jmp 0x106255f
mov ecx, edx
shl ebx, cl
or dword [ebp - 0x14], ebx
inc esi
inc dword [ebp - 0x18]
sub edx, 8
cmp dword [ebp - 0x18], eax
jl 0x1062545
movzx ecx, word [ebp - 8]
movzx eax, word [ebp - 6]
mov edx, dword [ebp - 0x28]
sub edx, ecx
imul edx, eax
mov eax, dword [ebp - 0x28]
shr eax, 0xa
sub edx, eax
xor edi, edx
movzx edx, word [ebp - 0xc]
mov eax, edx
xor eax, edi
mov ebx, edi
mov dword [ebp - 0x24], ecx
imul eax, ecx
movzx ecx, word [ebp - 0xa]
ror ebx, 7
sub eax, ebx
xor eax, dword [ebp - 0x28]
mov dword [ebp - 0x18], ecx
mov ebx, eax
sub ebx, ecx
sub ebx, dword [ebp - 8]
xor edi, ebx
xor ecx, edi
rol ecx, 2
mov ebx, edi
imul edx, ecx
ror ebx, 6
mov ecx, dword [ebp - 0xc]
xor ebx, edx
xor eax, ebx
movzx edx, word [ebp - 6]
mov ebx, edx
xor ecx, eax
rol ecx, 6
imul ebx, ecx
mov ecx, eax
shr ecx, 1
sub ebx, ecx
xor edi, ebx
mov ecx, edx
xor ecx, edi
rol ecx, 1
mov edx, edi
mov ebx, dword [ebp - 0x24]
imul ebx, ecx
ror edx, 6
sub ebx, edx
xor eax, ebx
mov ecx, eax
movzx edx, word [ebp - 0xc]
not ecx
ror ecx, 2
add ecx, dword [ebp - 0x18]
imul ecx, edx
xor edi, ecx
mov ebx, edi
mov ecx, edi
sub ecx, dword [ebp - 8]
rol ecx, 3
imul edx, ecx
ror ebx, 0xd
movzx ecx, word [ebp - 0xc]
add ebx, edx
xor eax, ebx
mov ebx, ecx
xor ebx, eax
mov edx, eax
movzx ecx, word [ebp - 6]
imul ebx, ecx
ror edx, 0xc
add edx, ebx
mov ecx, dword [ebp - 0x24]
xor edi, edx
movzx edx, word [ebp - 0xc]
xor edx, edi
rol edx, 6
imul ecx, edx
mov edx, edi
shr edx, 3
add ecx, edx
mov edx, dword [ebp - 0x18]
xor eax, ecx
mov ebx, eax
mov ecx, dword [ebp - 8]
add ecx, eax
and dword [ebp - 0x18], 0
ror ecx, 0xe
imul edx, ecx
rol ebx, 0xe
add ebx, edx
movzx ecx, word [ebp - 0xc]
xor edi, ebx
mov edx, edi
xor edi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x3c]
sub edx, ecx
mov ecx, edi
xor edx, dword [ebp - 8]
xor edx, dword [ebp - 0x30]
xor eax, edx
mov dword [ebp - 0x38], eax
test ebx, ebx
jle 0x10626b0
cmp dword [ebp - 0x18], 4
jge 0x1062697
rol dword [ebp - 0x38], 8
mov dl, byte [ebp - 0x38]
mov ebx, dword [ebp - 0x34]
inc dword [ebp - 0x34]
xor byte [ebp - 0xd], dl
mov byte [ebx], dl
jmp 0x10626a5
mov edx, dword [ebp - 0x34]
inc dword [ebp - 0x34]
rol ecx, 8
xor byte [ebp - 0xd], cl
mov byte [edx], cl
inc dword [ebp - 0x18]
mov ebx, dword [ebp - 0x3c]
cmp dword [ebp - 0x18], ebx
jl 0x106267d
add ebx, 0xfffffffc
test ebx, ebx
jle 0x106291b
push 4
pop ecx
sub ecx, ebx
shl ecx, 3
shr edi, cl
shl edi, cl
mov edx, edi
mov edi, 0x1000000
mov ecx, dword [ebp - 0x4c]
shr ecx, 3
test ecx, ecx
jbe 0x106289f
movzx edi, word [ebp - 6]
mov dword [ebp - 0x24], edi
movzx edi, word [ebp - 0xa]
mov dword [ebp - 0x18], edi
movzx edi, word [ebp - 0xc]
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x2c], ecx
movzx ecx, byte [esi]
movzx ebx, byte [esi + 5]
shl ecx, 8
movzx edi, byte [esi + 1]
or ecx, edi
movzx edi, byte [esi + 2]
shl ecx, 8
or ecx, edi
movzx edi, byte [esi + 3]
shl ecx, 8
or ecx, edi
movzx edi, byte [esi + 4]
shl edi, 8
or edi, ebx
shl edi, 8
movzx ebx, byte [esi + 6]
or edi, ebx
movzx ebx, byte [esi + 7]
xor eax, ecx
shl edi, 8
mov dword [ebp - 0x38], ecx
movzx ecx, word [ebp - 8]
or edi, ebx
mov ebx, eax
sub ebx, ecx
mov ecx, eax
imul ebx, dword [ebp - 0x24]
shr ecx, 0xa
sub ebx, ecx
xor ebx, edi
xor edx, ebx
movzx ecx, word [ebp - 8]
mov ebx, dword [ebp - 0x3c]
xor ebx, edx
imul ebx, ecx
mov ecx, dword [ebp - 0x18]
add esi, 8
mov dword [ebp - 0x70], edi
mov edi, edx
ror edi, 7
sub ebx, edi
xor eax, ebx
mov edi, eax
sub edi, ecx
sub edi, dword [ebp - 8]
xor edx, edi
movzx edi, word [ebp - 0xc]
xor ecx, edx
rol ecx, 2
mov ebx, edx
imul edi, ecx
mov ecx, dword [ebp - 0xc]
ror ebx, 6
xor ebx, edi
mov edi, dword [ebp - 0x24]
xor eax, ebx
xor ecx, eax
rol ecx, 6
imul edi, ecx
mov ecx, eax
shr ecx, 1
sub edi, ecx
xor edx, edi
movzx edi, word [ebp - 8]
mov ebx, edx
mov ecx, dword [ebp - 0x24]
xor ecx, edx
rol ecx, 1
imul edi, ecx
ror ebx, 6
sub edi, ebx
xor eax, edi
movzx edi, word [ebp - 0xc]
mov ecx, eax
not ecx
ror ecx, 2
add ecx, dword [ebp - 0x18]
imul ecx, edi
xor edx, ecx
mov ebx, edx
mov ecx, edx
sub ecx, dword [ebp - 8]
rol ecx, 3
imul edi, ecx
movzx ecx, word [ebp - 0xc]
ror ebx, 0xd
add ebx, edi
xor eax, ebx
mov edi, eax
xor ecx, eax
imul ecx, dword [ebp - 0x24]
ror edi, 0xc
add edi, ecx
xor edx, edi
mov ecx, dword [ebp - 8]
movzx edi, word [ebp - 0xc]
movzx ebx, cx
xor edi, edx
rol edi, 6
imul ebx, edi
mov edi, edx
shr edi, 3
add ebx, edi
xor eax, ebx
mov edi, eax
add ecx, eax
ror ecx, 0xe
mov ebx, dword [ebp - 0x18]
imul ebx, ecx
movzx ecx, word [ebp - 0xc]
rol edi, 0xe
add edi, ebx
xor edx, edi
mov edi, edx
xor edx, dword [ebp - 0x14]
sub edi, ecx
xor edi, dword [ebp - 8]
mov dword [ebp - 0x3c], ecx
mov cl, byte [ebp - 0xd]
xor edi, dword [ebp - 0x30]
xor eax, edi
mov edi, dword [ebp - 0x34]
mov byte [edi + 3], al
mov byte [edi + 7], dl
xor cl, al
xor cl, dl
ror eax, 8
mov byte [edi + 2], al
xor cl, al
ror edx, 8
mov byte [edi + 6], dl
xor cl, dl
ror eax, 8
mov byte [edi + 1], al
xor cl, al
ror edx, 8
xor cl, dl
ror eax, 8
mov byte [edi + 5], dl
ror edx, 8
mov bl, dl
xor bl, al
xor cl, bl
mov byte [ebp - 0xd], cl
mov ecx, dword [ebp - 0x38]
mov byte [edi], al
mov byte [edi + 4], dl
mov dword [ebp - 0x30], ecx
add edi, 8
mov ecx, dword [ebp - 0x70]
dec dword [ebp - 0x2c]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x34], edi
ror eax, 8
ror edx, 8
jne 0x10626f4
mov edi, 0x1000000
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 8]
xor al, byte [ebp - 0xd]
je 0x106295f
call fcn.010bfbea
mov ecx, dword [ebp - 0x68]
mov edx, 0xffff
mov edi, eax
mov eax, 0xfffff000
and ecx, 0xfffffffc
lea esi, [ecx + 0xfff]
and edi, eax
and esi, eax
mov eax, dword [ebp - 0x6c]
mov dword [eax + 8], 0x12e07d9
xor eax, eax
mov ebx, dword [0x138b4cc]
imul ebx, ebx, 0x343fd
add ebx, 0x269ec3
mov dword [0x138b4cc], ebx
shr ebx, 0x10
shl eax, 0x10
shr edx, 0x10
or eax, ebx
test edx, edx
jne 0x10628db
mov ebx, 0xffff
div ebx
mov eax, dword [ebp - 0x48]
inc edx
mov dword [eax], edi
mov dword [eax + 8], edx
mov dword [ebp - 0x48], 0
jmp 0x1062951
xor edx, edx
test ebx, ebx
jge 0x10626c9
neg ebx
shl ebx, 3
mov ecx, ebx
shr eax, cl
shl eax, cl
jmp 0x10626c9
xor edx, edx
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x30], eax
not eax
mov dword [ebp - 0x14], eax
xor eax, eax
jmp 0x10626ce
mov eax, dword [ebp - 0x48]
mov dword [ecx], eax
add ecx, 4
cmp ecx, esi
jb 0x1062949
mov eax, 0x12e07d9
jmp 0x1062a3e
mov eax, dword [0x102c94c]
mov ebx, dword [ebp - 0x64]
sub ebx, dword [ebp - 0x44]
mov dword [ebp - 0x40], ebx
sub edi, eax
mov dword [ebp - 0x2c], edi
jne 0x106297c
test ebx, ebx
je 0x1062a2c
mov esi, dword [ebp - 0x44]
sub esi, dword [ebp - 0x64]
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x28]
add ecx, eax
mov dword [ebp - 0x48], ecx
mov ecx, dword [0x1069ab8]
xor edi, edi
dec ecx
js 0x10629c3
lea eax, [edi + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x1069abc]
and edx, 0xfffffff
cmp dword [ebp - 0x28], edx
jae 0x10629b7
lea ecx, [eax - 1]
jmp 0x10629bc
jbe 0x10629c8
lea edi, [eax + 1]
cmp ecx, edi
jge 0x1062998
mov ebx, dword [ebp - 0x40]
mov dword [ebp - 0x14], edi
jmp 0x1062a21
mov ebx, dword [ebp - 0x40]
mov dword [ebp - 0x14], eax
jmp 0x1062a21
mov eax, dword [ebp - 0x14]
mov eax, dword [eax*4 + 0x1069abc]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x48]
jae 0x1062a2c
lea edi, [ecx + esi + 0x1000000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x1062a13
dec ecx
je 0x1062a0f
dec ecx
jne 0x1062a18
mov edx, dword [ebp - 0x2c]
jmp 0x1062a18
mov edx, ebx
jmp 0x1062a18
mov edx, dword [ebp - 0x2c]
sub edx, ebx
dec eax
dec eax
jne 0x1062a1e
add dword [edi], edx
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp eax, dword [0x1069ab8]
jb 0x10629d0
mov eax, dword [0x10fb370]
mov eax, 0x388ee4d7
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x44]
add eax, ecx
mov ecx, dword [ebp - 0x6c]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 4]
add dword [eax], 0xc
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.0103e3fb
leave
ret 8