Function at 0x160fbf5
Capabilities:
Authenticate hmac

Disassembly:
sub eax, edi
sub esi, edi
test dh, 0x21
mov edi, edx
clc
shr edi, 5
test bp, 0x10ca
stc
sub edx, edi
rcl edi, 0xb1
mov edi, 0x42e237f9
or edi, ecx
mov edi, dword [ebp - 0x30]
cmp ax, bx
stc
mov word [ecx + ebx*2 + 0x1c8], dx
btc edx, 0xfd
rol dl, 0xda
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x38], edi
mov edi, dword [ebp - 0x2c]
mov dword [ebp - 0x30], edi
sar di, 0x91
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x2c], edi
cmp si, sp
clc
cmp ecx, 0x5e43820
mov dword [ebp - 0x18], edx
and edx, 0x191a099e
cmp ebx, 7
sbb ebx, ebx
cdq
and ebx, 0xfffffffd
lea ebx, [ebx + 0xb]
not dh
sal dx, 0x59
xor dl, 0xdc
lea ecx, [ecx + 0xa68]
btr dx, di
movzx edx, word [ecx]
cmp esi, 0x4f155e2c
cmc
mov dword [ebp - 0x14], ebx
cmc
cmp esi, esp
cmp eax, 0x1000000
jae 0xf52a43
mov edi, dword [ebp - 4]
test si, ax
movzx edi, byte [edi]
cmp bx, bp
test edx, esi
shl esi, 8
test dx, 0x44f7
cmp bp, 0x2123
shl eax, 8
test cx, di
cmc
or esi, edi
inc dword [ebp - 4]
shl edi, 0x9b
bt edi, ecx
and edi, 0x77842675
mov edi, eax
cmp ebx, 0x786e53de
shr edi, 0xb
imul edi, edx
stc
cmp esi, edi
jae 0x15d8657
mov eax, edi
mov edi, 0x800
cmp esi, ebp
stc
sub edi, edx
shr edi, 5
lea edi, [edi + edx]
and dh, 0x4d
mov edx, dword [ebp - 0x1c]
cmp ebx, 0x5532079e
shl edx, 4
mov word [ecx], di
movzx edi, bx
xchg di, di
lea edi, [edx + ecx + 4]
mov dword [ebp - 8], 0
mov dword [ebp - 0x1c], 8
jmp 0x1615013
sub eax, edi
test edx, edx
sub esi, edi
bsr edi, esp
btr edi, 0x4a
mov edi, edx
shr edi, 5
cmc
cmp ebp, 0x57ee085c
sub edx, edi
mov word [ebx + ecx], dx
inc ebx
add dx, 0x7710
setbe dh
lea ebx, [ebx + ebx]
bts dx, bx
xchg dl, dl
or edx, ebp
movzx edx, word [ebx + ecx]
cmp si, 0x7a7a
cmp eax, 0x1000000
jae 0xf53d33
mov edi, dword [ebp - 4]
clc
cmp dl, 0x93
movzx edi, byte [edi]
stc
cmp bp, di
shl esi, 8
shl eax, 8
test eax, 0x2b2b6f79
or esi, edi
cmovnp di, di
movsx edi, bp
inc dword [ebp - 4]
xchg di, di
mov edi, eax
shr edi, 0xb
test cx, ax
cmp esi, ebp
imul edi, edx
clc
cmp dh, 0x5c
test bh, 0x9d
cmp esi, edi
jae 0x15d6590
mov eax, edi
mov edi, 0x800
clc
test al, 0x59
sub edi, edx
cmp ecx, 0x474a14fe
shr edi, 5
clc
test sp, cx
add edi, edx
mov word [ebx + ecx], di
jmp 0x15d65ce
sub eax, ebx
test ch, bh
clc
cmc
sub esi, ebx
btc ebx, 0xd4
bts bx, bx
mov ebx, edi
shr ebx, 5
cmp ch, 0x62
sub edi, ebx
bswap bx
mov ebx, dword [ebp - 0x44]
test di, 0x7ff8
mov word [ebx], di
lea ecx, [ecx + ecx + 1]
test esi, 0x350336b9
and dword [ebp - 0x1c], edx
cmp sp, sp
cmp ecx, 0x100
jb 0x15cc167
mov edx, dword [ebp - 0xc]
movsx edi, dx
bswap edi
mov edi, dword [ebp - 0x34]
mov byte [edx + edi], cl
inc edx
inc dword [ebp - 0x10]
mov dword [ebp - 0xc], edx
jmp 0x15caaa4
push ebp
xadd ax, dx
mov ebp, esp
shr cl, 0xbc
shld eax, esp, 0xc6
setne al
sub esp, 0x50
sal dl, cl
push ebx
push esi
inc al
dec bx
push edi
lahf
cbw
mov edi, dword [ebp + 8]
cwd
rcl eax, 0xfb
mov ecx, dword [edi + 0x38]
cmovno si, si
mov eax, dword [edi + 0x10]
mov edx, dword [edi + 0x3c]
mov dword [ebp - 0x20], eax
rol esi, 0xe2
shr bl, 0
mov eax, dword [edi + 0x40]
sub ebx, esi
clc
mov ebx, dword [edi + 0x34]
mov dword [ebp - 0x18], ecx
shrd cx, sp, 0x48
mov ecx, dword [edi + 0x44]
mov esi, dword [edi + 0x20]
test esi, 0x65d92d5b
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x38], ecx
cmp ebp, 0x2e27174
adc ecx, ebp
and ax, 0x13f8
mov ecx, dword [edi + 8]
mov dword [ebp - 0x2c], edx
rcr edx, 0x3e
mov edx, 1
xor eax, 0x3fd687e
and ax, di
shl edx, cl
cbw
test di, 0x6c7b
mov ecx, dword [edi + 4]
clc
sal al, 0xda
mov eax, 1
clc
shl eax, cl
mov ecx, dword [edi + 0x14]
dec edx
mov dword [ebp - 0x34], ecx
inc cx
movzx ecx, bp
mov ecx, dword [edi + 0x24]
dec eax
stc
test edi, ebp
cmp ecx, 0x48bf3e31
mov dword [ebp - 0x48], eax
bts eax, ebx
cbw
mov eax, dword [edi]
test ecx, 0x1bb62446
cmp ecx, ebp
mov dword [ebp - 0x40], eax
cmp esi, ecx
rol al, 0x81
sar ah, cl
mov eax, dword [edi + 0x28]
test eax, ebp
cmp dx, bp
mov dword [ebp - 0x24], eax
test ecx, 0x40371349
btr ax, ax
mov eax, dword [edi + 0x2c]
stc
cmp esp, ebx
mov dword [ebp - 0x10], eax
mov eax, dword [edi + 0x18]
test edi, 0x40e04b61
cmc
mov dword [ebp - 0xc], ecx
mov ecx, dword [edi + 0x30]
cmc
mov dword [ebp - 4], eax
sub eax, ebx
mov eax, dword [edi + 0x1c]
mov dword [ebp - 0x14], ebx
test di, ax
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x3c], ecx
and ecx, esp
rol ecx, cl
sub cl, 0xea
mov dword [ebp - 0x28], 0
rcr ch, cl
xadd cx, cx
sal cx, cl
mov ecx, dword [ebp - 0x10]
cmp dl, 0x3b
cmp esp, edx
and ecx, edx
btr dx, bx
bt dx, 0x86
mov edx, ebx
cmp edx, 0xdf80b68
shl edx, 4
add edx, ecx
cmp bl, 0x54
stc
mov dword [ebp - 0x1c], ecx
shld cx, bx, 0x98
xchg cx, cx
shl ecx, cl
mov ecx, dword [ebp - 0x20]
cmp dx, si
test ah, al
lea ecx, [ecx + edx*2]
cmc
mov dword [ebp - 8], ecx
clc
test esi, 0xf6605cf
movzx ecx, word [ecx]
cmp eax, 0x1000000
jae 0xf5613c
mov edx, dword [ebp - 4]
test dx, 0x3d73
test edx, ebp
cmc
movzx edx, byte [edx]
test sp, sp
test ah, 0x33
shl esi, 8
test di, 0x6ffb
shl eax, 8
test sp, bx
or esi, edx
xchg dx, dx
mov edx, ebp
setnp dh
inc dword [ebp - 4]
not dx
test sp, 0x6791
mov edx, eax
test edi, 0x6de22a73
cmc
shr edx, 0xb
cmp edi, 0x7a4598a
cmc
imul edx, ecx
clc
cmp esp, 0x47f43b35
cmc
cmp esi, edx
jae 0x15cc853
mov eax, edx
sar dh, cl
mov edx, 0x800
cmc
clc
sub edx, ecx
cmc
shr edx, 5
cmp esi, 0x685d2d4a
cmp sp, bx
lea edx, [edx + ecx]
mov ecx, dword [ebp - 8]
cmc
cmp di, 0x3680
mov word [ecx], dx
mov edx, dword [ebp - 0x20]
cmp bl, ch
cmp sp, 0x5095
lea edx, [edx + 0xe6c]
cmp dword [ebp - 0x3c], 0
mov dword [ebp - 8], edx
jne 0xf561b2
cmp dword [ebp - 0x10], 0
je 0xf56226
mov ecx, dword [ebp - 0xc]
test ecx, ecx
jne 0xf561c8
mov ecx, dword [ebp - 0x24]
sub dh, 0xce
cdq
shld ebx, edx, 0x1d
mov edx, dword [ebp - 0x34]
adc bl, 0x49
movzx ebx, byte [ecx + edx - 1]
setbe dh
mov edx, dword [ebp - 0x10]
btc ecx, ebp
and edx, dword [ebp - 0x48]
mov ecx, 8
sub cl, byte [ebp - 0x40]
shr ebx, cl
xor ecx, 0x242969bf
mov ecx, dword [ebp - 0x40]
clc
cmc
shl edx, cl
clc
cmp cx, 0x7f96
add ebx, edx
mov edx, dword [ebp - 8]
test edx, edi
cmp esi, 0x6b4e3a73
imul ebx, ebx, 0x600
add edx, ebx
cmovbe bx, sp
sub bl, 0xf2
xadd ebx, ebx
mov ebx, dword [ebp - 0x14]
cmp bp, 0x15dc
mov dword [ebp - 8], edx
cmp ebx, 7
jae 0x15d6e8b
mov ecx, ebx
test esp, 0x49a577bc
cmp ebx, 4
jb 0xf56246
mov ecx, 3
clc
sub ebx, ecx
bswap cx
mov dword [ebp - 0x14], ebx
mov ecx, 1
jmp 0x161533f
sub eax, edi
sub esi, edi
and di, 0x39e7
mov edi, ecx
test ch, 0x5e
test bp, bx
shr edi, 5
stc
clc
sub ecx, edi
mov di, bp
mov edi, dword [ebp - 0x28]
mov word [edi + edx*2], cx
bsr cx, dx
lea edx, [edx + edx + 1]
test sp, sp
ror cx, cl
btc cx, 0xb6
mov ecx, dword [ebp - 0x1c]
cmc
test ch, ch
stc
cmp edx, ecx
jb 0x161502b
mov edi, dword [ebp - 8]
sub edi, ecx
stc
cmc
add edx, edi
mov dword [ebp - 0x28], edx
cmp sp, bp
cmp ebx, 0xc
jb 0x15c9579
mov ecx, edx
test ax, 0x1390
cmp edx, 4
jb 0x15bbab2
mov ecx, 3
mov edx, dword [ebp - 0x20]
clc
shl ecx, 7
cmp dl, 0x8c
lea ecx, [ecx + edx + 0x360]
and dx, sp
sal edx, 0x8c
movzx edx, word [ecx + 2]
stc
clc
cmp eax, 0x1000000
jae 0x15bbb08
mov edi, dword [ebp - 4]
mov bh, 0x60
xor bx, bp
movzx ebx, byte [edi]
cmp di, 0x4b1e
test dx, si
cmc
shl esi, 8
shl eax, 8
test eax, esi
test esi, 0x796e558a
or esi, ebx
inc edi
cmp dl, dl
mov dword [ebp - 4], edi
cmp dh, 0xa3
mov edi, eax
cmc
shr edi, 0xb
stc
imul edi, edx
cmc
cmp esi, edi
jae 0x15cc54d
mov eax, edi
xadd edi, edi
or di, si
mov edi, 0x800
sub edi, edx
shr edi, 5
cmc
add edi, edx
not dx
movzx edx, si
seto dh
mov word [ecx + 2], di
cwd
mov edx, 2
jmp 0x15cc57d
sub eax, edi
clc
cmp ax, sp
sub esi, edi
mov edi, edx
test cl, 0x69
shr edi, 5
cmp sp, 0x540d
test sp, 0xd14
sub edx, edi
stc
cmc
mov word [ecx + ebx*2 + 0x198], dx
cmp eax, ecx
sar dh, cl
btc edx, 0x6c
movzx edx, word [ecx + ebx*2 + 0x1b0]
test di, bp
clc
cmp eax, 0x1000000
jae 0x15c4ea7
mov edi, dword [ebp - 4]
test edi, edi
movzx edi, byte [edi]
shl esi, 8
shl eax, 8
clc
cmc
or esi, edi
bswap edi
cmovg edi, edi
inc dword [ebp - 4]
xadd di, di
bts edi, ebx
mov edi, eax
cmp esp, ebp
shr edi, 0xb
imul edi, edx
test edi, eax
cmp esi, edi
jae 0x160f6b9
mov eax, edi
mov edi, 0x800
sub edi, edx
test edi, ebx
shr edi, 5
stc
cmp sp, 0x75f9
add edi, edx
mov edx, dword [ebp - 0x2c]
mov word [ecx + ebx*2 + 0x1b0], di
jmp 0xf529bd
sub eax, ecx
cmc
test si, 0x3611
cmp ax, si
sub esi, ecx
sbb ecx, 0x23943947
movsx ecx, sp
mov ecx, edx
cmc
shr ecx, 5
sub edx, ecx
sbb cx, di
rcl cx, cl
mov ecx, dword [ebp - 8]
or ebx, dword [ebp - 0x38]
stc
test ecx, esp
mov word [ecx + edi*2], dx
stc
clc
lea edi, [edi + edi + 1]
shl dword [ebp - 0x38], 1
test dl, 0x68
sub dword [ebp - 0x44], 1
jne 0x1610553
jmp 0x15dd246
cmp ebx, ecx
jae 0x160ddd5
cmp dword [ebp - 0x14], 0x13
cmovge edx, eax
mov edx, dword [ebp - 0x28]
not di
sbb ecx, ecx
and ecx, 0xfffffffd
cmp bx, cx
add ecx, 0xa
and di, 0x3777
rol di, 0x28
mov dword [ebp - 0x14], ecx
sal ecx, 0x5b
sar ch, cl
add di, 0x1b70
mov ecx, dword [ebp + 0xc]
mov edi, dword [ebp - 0xc]
stc
clc
lea edx, [edx + 2]
cmp ecx, edi
je 0x160ddd5
sub ecx, edi
mov dword [ebp - 0xc], ecx
test bp, 0x3f7a
cmp ecx, edx
jb 0x15c95a5
mov dword [ebp - 0xc], edx
sar bx, 0xec
cmp edi, dword [ebp - 0x18]
cmovs bx, di
mov ebx, dword [ebp - 0xc]
sbb ecx, ecx
and ecx, dword [ebp - 0x24]
add dword [ebp - 0x10], ebx
test si, 0x1350
cmp ebx, 0x3ae43cc2
clc
sub ecx, dword [ebp - 0x18]
sub edx, ebx
stc
lea ecx, [ecx + edi]
test di, 0x78ea
mov dword [ebp - 0x28], edx
rol dh, cl
rcl dx, cl
test dh, 0x6d
lea edx, [ecx + ebx]
stc
cmp edx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x34]
ja 0x15caa74
lea edx, [edx + edi]
test bp, bx
clc
cmp bh, al
add ebx, edx
cmc
test dx, ax
sub ecx, edi
add edi, dword [ebp - 0xc]
mov dword [ebp - 0x4c], ebx
not bl
mov dword [ebp - 0xc], edi
dec bl
mov bl, byte [ecx + edx]
mov byte [edx], bl
inc edx
stc
cmp edx, dword [ebp - 0x4c]
jne 0x15c960a
jmp 0x15caaa4
lea ecx, [ecx - 4]
cmc
lea ecx, [ecx]
clc
cmp eax, 0x1000000
jae 0x15c9f8f
mov edx, dword [ebp - 4]
cmovae di, di
cmc
or di, 0x31df
movzx edi, byte [edx]
shl esi, 8
cmp sp, ax
shl eax, 8
clc
or esi, edi
inc edx
mov dword [ebp - 4], edx
shl edx, cl
movzx edx, sp
sub dh, dh
shr eax, 1
btr dx, bp
xor dx, si
movzx edx, bp
sub esi, eax
mov edx, esi
clc
shr edx, 0x1f
neg edx
test bp, dx
cmp eax, edx
lea ebx, [edx + ebx*2 + 1]
stc
and edx, eax
cmp si, sp
test dl, 0x73
add esi, edx
clc
test ebp, 0x6ef84780
cmp bp, 0x1eb9
sub ecx, 1
jne 0x15c9f5d
mov ecx, dword [ebp - 0x20]
movzx edx, word [ecx + 0x646]
test sp, 0x3c98
test dx, bp
cmc
shl ebx, 4
clc
cmp sp, bx
test cx, 0x1585
cmp eax, 0x1000000
jae 0x15ca01c
mov edi, dword [ebp - 4]
stc
movzx edi, byte [edi]
shl esi, 8
test ch, 0x9a
test ax, bp
shl eax, 8
or esi, edi
mov di, dx
inc dword [ebp - 4]
and edi, 0x7a5c1b65
rcr edi, 0xfa
mov edi, eax
cmp dx, bp
cmc
shr edi, 0xb
imul edi, edx
cmp esi, edi
jae 0x15cd2de
mov eax, edi
xor edi, esi
mov edi, 0x800
test esp, 0x7ba058d0
sub edi, edx
cmc
cmp di, 0x7e46
shr edi, 5
test ecx, esp
add edi, edx
bswap edx
xchg edx, edx
mov word [ecx + 0x646], di
mov edx, 2
jmp 0x15cd316
mov bl, byte [ecx + edx]
mov byte [edi + edx], bl
inc ecx
inc edi
cmp ecx, dword [ebp - 0x24]
jne 0x15caa8e
sub ecx, ecx
stc
test ax, dx
cmp dx, dx
sub dword [ebp - 0xc], 1
jne 0x15caa74
mov dword [ebp - 0xc], edi
shl cl, cl
bts cx, di
btr ecx, edi
mov ecx, dword [ebp - 0xc]
stc
cmp ecx, dword [ebp + 0xc]
jae 0x16105da
mov edx, dword [ebp - 4]
cmp sp, 0x4453
cmp dx, bx
cmp edx, dword [ebp + 0x10]
jae 0x16105da
mov edx, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x14]
mov edi, ecx
movsx edi, cx
mov edi, dword [ebp + 8]
jmp 0xf560b0
mov edi, dword [ebp - 0x4c]
ror dx, cl
mov edx, dword [ebp - 0x1c]
shr bl, cl
mov ebx, dword [ebp - 8]
test ecx, 0x45ea7aeb
add edi, edi
stc
test ch, 0x17
and edx, edi
test sp, 0x67c7
stc
mov dword [ebp - 0x4c], edi
and edi, 0x196b3518
rcl edi, 0x73
shrd di, ax, 0xde
mov edi, dword [ebp - 0x1c]
add edi, edx
cmp dh, 0xa2
cmp cx, si
add edi, ecx
cmp ah, 0x74
lea edi, [ebx + edi*2]
cmp di, 0x2370
mov dword [ebp - 0x44], edi
clc
movzx edi, word [edi]
clc
cmp eax, 0x1000000
jae 0x15cc1e2
mov ebx, dword [ebp - 4]
movzx ebx, byte [ebx]
cmc
shl esi, 8
clc
cmp ah, 0xef
shl eax, 8
cmc
or esi, ebx
mov bh, cl
mov bh, 0x7b
dec ebx
inc dword [ebp - 4]
mov ebx, eax
test sp, 0x532
cmp dl, cl
shr ebx, 0xb
cmp ebx, edx
imul ebx, edi
cmc
cmp ebp, 0x116d0187
cmp esi, ebx
jae 0xf552e0
mov eax, ebx
mov ebx, 0x800
sub ebx, edi
cmc
stc
shr ebx, 5
stc
lea ebx, [ebx + edi]
mov edi, dword [ebp - 0x44]
cmc
stc
mov word [edi], bx
add ecx, ecx
not edx
jmp 0xf55312
sub eax, edi
shr bh, cl
adc bx, sp
sub esi, edi
bsr edi, ebp
or bx, si
movzx ebx, di
mov edi, edx
and ebx, esi
shr edi, 5
and bh, 0x52
sub edx, edi
rcr bx, cl
mov word [ecx + 2], dx
mov edx, 3
or bl, 0x1c
or bx, si
lea ebx, [edx + edx]
sbb edx, eax
inc edx
xchg dx, dx
movzx edx, word [ebx + ecx]
cmp esi, ecx
cmp eax, 0x1000000
jae 0x15cc5b5
mov edi, dword [ebp - 4]
movzx edi, byte [edi]
test ebp, edi
cmp cl, al
shl esi, 8
cmc
cmp dx, bp
shl eax, 8
or esi, edi
inc di
bswap edi
inc dword [ebp - 4]
mov edi, eax
stc
cmc
test edx, 0xe931457
shr edi, 0xb
cmp cx, di
test dl, ah
cmp edx, 0x443b5486
imul edi, edx
test cl, 0xef
stc
cmp esi, edi
jae 0xf53cc4
mov eax, edi
rcl edi, 0xfa
mov edi, 0x800
test ebp, esp
sub edi, edx
clc
cmp cx, bp
test bp, cx
shr edi, 5
cmc
cmp ecx, edi
add edi, edx
mov word [ebx + ecx], di
jmp 0xf53cec
sub eax, edx
stc
cmc
sub esi, edx
mov edx, ecx
stc
shr edx, 5
sub ecx, edx
cmc
setnp dh
mov edx, dword [ebp - 8]
cmp sp, 0x7b1e
test si, bp
mov word [edx], cx
clc
cmc
mov ecx, dword [ebp - 0x20]
xor edx, esi
movzx edx, word [ecx + ebx*2 + 0x180]
stc
cmp eax, 0x1000000
jae 0x15cc8ae
mov edi, dword [ebp - 4]
stc
cmp bp, 0x7614
movzx edi, byte [edi]
clc
test bx, bp
shl esi, 8
shl eax, 8
clc
or esi, edi
bswap edi
mov edi, ebx
inc dword [ebp - 4]
mov edi, eax
stc
cmc
clc
shr edi, 0xb
test ebp, esp
stc
imul edi, edx
cmp esi, eax
test si, di
cmp esi, edi
jae 0x160fbf5
mov eax, edi
shld di, bx, 0x1a
mov edi, 0x800
sub edi, edx
shr edi, 5
clc
cmp bx, 0x199a
add edi, edx
mov word [ecx + ebx*2 + 0x180], di
clc
cmp ch, ah
add ebx, 0xc
add ecx, 0x664
jmp 0xf529f5
sub eax, edi
cmc
test dx, cx
test ebp, 0x6780c4d
sub esi, edi
xchg di, di
btc edi, esp
cmc
mov edi, edx
clc
shr edi, 5
test esp, 0x61982ab1
sub edx, edi
mov word [ecx + 0x646], dx
cmp esi, 0x77e57bee
mov edx, 3
or ebx, 1
lea edx, [edx + edx]
mov dword [ebp - 0x1c], edx
test edi, esp
movzx edx, word [edx + ecx + 0x644]
clc
cmp eax, 0x1000000
jae 0x15cd364
mov edi, dword [ebp - 4]
cmp edi, ebp
cmc
movzx edi, byte [edi]
cmp edi, 0x4d855216
cmc
shl esi, 8
test si, 0x7c62
cmp sp, ax
clc
shl eax, 8
clc
cmp ebx, esp
or esi, edi
xchg edi, edi
cmovo di, sp
inc dword [ebp - 4]
inc edi
rol di, 0x75
mov edi, eax
shr edi, 0xb
imul edi, edx
test bx, 0x1231
clc
cmp esi, edi
jae 0x1609a80
mov eax, edi
mov edi, 0x800
clc
cmp edx, 0x36717289
sub edi, edx
shr edi, 5
test ch, 0x3c
add edi, edx
cwd
cdq
mov edx, dword [ebp - 0x1c]
mov word [edx + ecx + 0x644], di
jmp 0x1609aac
sub eax, edi
sub esi, edi
or edi, edx
mov edi, edx
stc
shr edi, 5
sub edx, edi
mov edi, ecx
sub di, 0x5f4b
mov edi, dword [ebp - 0x1c]
stc
mov word [edi + ecx + 0x644], dx
rcl dl, 0xca
lea edx, [edi + 1]
or ebx, 4
clc
cmp eax, edi
cmp bh, 0x4a
mov dword [ebp - 0x1c], edx
test cx, sp
movzx edx, word [ecx + edx*2 + 0x644]
cmp eax, 0x1000000
jae 0x15cdbf4
mov edi, dword [ebp - 4]
clc
test sp, sp
cmp ecx, 0x27e3748c
movzx edi, byte [edi]
stc
shl esi, 8
clc
cmc
shl eax, 8
cmp si, di
test bl, 0x36
test bp, dx
or esi, edi
inc dword [ebp - 4]
movsx edi, cx
xor edi, esp
mov edi, eax
cmc
shr edi, 0xb
imul edi, edx
cmp esi, edi
jae 0x15dd210
mov eax, edi
mov edi, 0x800
sub edi, edx
stc
cmc
shr edi, 5
add edi, edx
cmovle edx, edi
mov edx, dword [ebp - 0x1c]
mov word [ecx + edx*2 + 0x644], di
jmp 0x15dd23d
sub eax, edi
cmp esp, 0x7bee580a
stc
sub esi, edi
cmp ebx, 0x7bbe31cd
xor edi, 0x62243b89
mov edi, edx
test sp, ax
cmp ax, 0x6584
shr edi, 5
cmc
cmp al, 0x9d
test esi, esp
sub edx, edi
mov word [ebx + ecx], dx
dec edx
xchg edx, edx
inc ebx
ror dx, 0xda
sbb dl, 0x8e
adc dx, 0x732a
lea ebx, [ebx + ebx]
sbb edx, 0x17107492
inc dx
and edx, esi
movzx edx, word [ebx + ecx]
test cx, sp
stc
clc
cmp eax, 0x1000000
jae 0x15d6608
mov edi, dword [ebp - 4]
clc
cmc
movzx edi, byte [edi]
cmp bp, 0xfff
shl esi, 8
shl eax, 8
or esi, edi
inc dword [ebp - 4]
mov edi, eax
stc
cmp al, 0x89
shr edi, 0xb
test dh, 0x59
cmp bp, 0x79d9
imul edi, edx
test ax, ax
test eax, 0x29d26497
cmp esi, edi
jae 0x160b4d0
mov eax, edi
and di, ax
mov edi, 0x800
stc
clc
sub edi, edx
shr edi, 5
clc
cmp edx, 0x16140cb6
cmp dl, bl
add edi, edx
mov word [ebx + ecx], di
jmp 0x160b4fe
mov ecx, dword [ebp - 0xc]
test edi, ebp
cmp ecx, dword [ebp - 0x18]
mov dword [ebp - 0x1c], 0x100
sbb edx, edx
and edx, dword [ebp - 0x24]
sub edx, dword [ebp - 0x18]
cmp edx, 0x21ba1da6
stc
add edx, dword [edi + 0x14]
adc edi, ebp
sal edi, 0xb6
cmp ebx, 0xa
bswap di
movzx edi, byte [edx + ecx]
cmovns cx, dx
setns cl
movsx ecx, bx
sbb edx, edx
bt ecx, 0x22
sar cl, 0x6d
and edx, 0xfffffffd
ror cl, 0xe9
bsf ecx, ebx
lea edx, [edx + 6]
sub ebx, edx
cmovl cx, bp
mov ch, bh
mov dword [ebp - 0x14], ebx
cmovnp cx, cx
bswap ecx
mov ecx, 1
jmp 0x15cc16d
sub eax, edi
sub esi, edi
mov edi, edx
clc
test esi, 0x6d632f9e
shr edi, 5
clc
sub edx, edi
stc
cmp ah, 0x59
mov word [ecx], dx
movzx edx, word [ecx + 2]
cmc
stc
test si, 0x57f0
cmp eax, 0x1000000
jae 0x15d86b6
mov edi, dword [ebp - 4]
stc
cmp ah, 0xce
cmp ebx, esp
movzx edi, byte [edi]
cmp ebp, 0x54093b20
cmp cx, bp
shl esi, 8
test bp, 0x6fd6
cmp bl, 0x2a
clc
shl eax, 8
cmp si, cx
or esi, edi
bswap di
inc dword [ebp - 4]
mov edi, eax
test bp, di
stc
shr edi, 0xb
cmp ebx, 0x7da6361f
cmc
stc
imul edi, edx
clc
test di, dx
cmp esi, edi
jae 0x1614fd8
mov eax, edi
mov edi, 0x800
test ebp, edx
cmp si, dx
sub edi, edx
shr edi, 5
cmc
cmp cl, 0xc5
add edi, edx
mov edx, dword [ebp - 0x1c]
mov word [ecx + 2], di
shrd edi, eax, 0x57
test dl, 0xcc
shl edx, 4
cmovge di, cx
lea edi, [edx + ecx + 0x104]
mov ecx, 8
mov dword [ebp - 8], ecx
mov dword [ebp - 0x1c], ecx
jmp 0x1615013
sub eax, edi
clc
cmp cx, dx
test esi, ecx
sub esi, edi
btr edi, esi
mov edi, edx
shr edi, 5
test bp, cx
cmp edi, 0xee464c2
sub edx, edi
xchg di, di
mov edi, dword [ebp - 8]
mov word [edi], dx
jmp 0xf529d6
sub eax, edi
stc
sub esi, edi
add di, dx
and edi, 0x434b68a9
mov edi, edx
cmp bp, bx
shr edi, 5
stc
sub edx, edi
shld edi, edi, 1
mov edi, dword [ebp - 0x1c]
mov word [ecx + edi*2 + 0x644], dx
cmp ah, bl
or ebx, 8
cmp ebx, 0xffffffff
je 0x16105c8
mov ecx, dword [ebp - 0x30]
cmovns dx, sp
mov edx, dword [ebp - 0x2c]
cmp esi, 0x11de4c29
clc
mov dword [ebp - 0x38], ecx
btr ecx, 0xea
mov ecx, dword [ebp - 0x18]
cmp edi, ebx
clc
mov dword [ebp - 0x2c], ecx
test bx, 0x4de1
inc cl
rol ecx, cl
mov ecx, dword [ebp - 0x3c]
cmc
mov dword [ebp - 0x30], edx
lea edx, [ebx + 1]
mov dword [ebp - 0x18], edx
test ch, cl
test ecx, ecx
jne 0x15c9543
cmp ebx, dword [ebp - 0x10]
jmp 0x15c9545
sub eax, edi
clc
sub esi, edi
test dl, 0xf2
shr di, 0x47
ror edi, 0x36
mov edi, edx
shr edi, 5
clc
stc
test ebx, ebp
sub edx, edi
mov word [ebx + ecx], dx
movzx edx, cx
inc ebx
lea ebx, [ebx + ebx]
neg dh
shld edx, esi, 0x75
cmc
movzx edx, word [ebx + ecx]
cmp eax, 0x1000000
jae 0x15dddad
mov edi, dword [ebp - 4]
stc
movzx edi, byte [edi]
shl esi, 8
stc
clc
shl eax, 8
clc
cmp di, 0x2758
or esi, edi
xchg edi, edi
mov di, si
inc dword [ebp - 4]
sbb edi, ecx
bts di, dx
mov edi, eax
cmp sp, sp
shr edi, 0xb
imul edi, edx
cmp dh, 0x33
cmp esi, edi
jae 0x16104a7
mov eax, edi
mov edi, 0x800
cmc
cmp ax, bx
clc
sub edi, edx
shr edi, 5
stc
add edi, edx
mov word [ebx + ecx], di
jmp 0x16104ce
sub eax, ebx
cmp esp, 0x56e0511b
sub esi, ebx
sbb bh, al
sar bl, cl
rcl bx, cl
mov ebx, edi
test eax, ebp
shr ebx, 5
test esp, 0x58652eef
test edi, edi
sub edi, ebx
test ax, 0x5dd8
mov word [edx + ecx*2], di
clc
cmp ebp, 0x181f61cd
lea ecx, [ecx + ecx + 1]
test eax, 0x1c4b3f3c
cmc
cmp ecx, 0x100
jb 0x161533f
jmp 0xf55324
sub eax, edi
sub esi, edi
btr edi, 0x51
bt edi, esi
bts di, di
mov edi, edx
shr edi, 5
sub edx, edi
mov edi, dword [ebp - 0x1c]
mov word [edi + ecx + 0x644], dx
sar dh, 0x89
lea edx, [edi + 1]
cmc
stc
or ebx, 2
add edx, edx
test sp, cx
cmc
clc
mov dword [ebp - 0x1c], edx
stc
cmp sp, di
test edi, esi
movzx edx, word [edx + ecx + 0x644]
stc
test ebp, ecx
cmc
cmp eax, 0x1000000
jae 0x1609b06
mov edi, dword [ebp - 4]
movzx edi, byte [edi]
test eax, 0x1ed5cca
cmc
shl esi, 8
clc
cmc
test sp, 0xca
shl eax, 8
test ebp, esp
cmp dx, di
or esi, edi
inc di
movsx edi, si
cmovae di, dx
inc dword [ebp - 4]
bswap edi
rcr di, 0x46
mov edi, eax
cmc
shr edi, 0xb
imul edi, edx
test cl, bh
cmp esi, edi
jae 0x15cdb7f
mov eax, edi
test esi, ebp
bt di, bp
mov edi, 0x800
cmc
clc
cmp ebp, 0x53336f36
sub edi, edx
shr edi, 5
add edi, edx
mov edx, dword [ebp - 0x1c]
mov word [edx + ecx + 0x644], di
jmp 0x15cdbaf
sub eax, edi
test esi, 0x4a183f45
sub esi, edi
rcr di, 0x6e
rcl di, 0x81
shrd edi, edi, 0xe4
mov edi, edx
shr edi, 5
cmp cx, di
sub edx, edi
mov word [ebx + ecx], dx
dec edx
not edx
inc ebx
sub dh, 0x7a
setle dh
lea ebx, [ebx + ebx]
sar dh, 0x1a
rcl dx, 0x1b
shld dx, di, 0x6f
movzx edx, word [ebx + ecx]
cmp dx, ax
cmp eax, 0x1000000
jae 0x160b54a
mov edi, dword [ebp - 4]
cmc
stc
movzx edi, byte [edi]
test ebp, ebx
stc
test bh, 0xd5
shl esi, 8
test ch, 0xe8
shl eax, 8
cmp ebp, eax
cmc
or esi, edi
bswap edi
not di
movsx edi, si
inc dword [ebp - 4]
shrd edi, eax, 0xa6
mov edi, eax
clc
test ebx, ecx
shr edi, 0xb
test sp, 0x1664
clc
imul edi, edx
clc
cmc
cmp esi, edi
jae 0x15ddd4d
mov eax, edi
xor di, bx
or di, si
mov edi, 0x800
sub edi, edx
shr edi, 5
test esi, 0x48e531c
clc
add edi, edx
mov word [ebx + ecx], di
jmp 0x15ddd6f
pop edi
movzx ebx, ax
lahf
pop esi
movzx bx, bl
lahf
mov eax, 1
pop ebx
mov esp, ebp
bswap bp
mov ebp, ebp
pop ebp
ret 0xc
sub eax, edi
sub esi, edi
inc edi
adc edi, 0x38833adc
mov edi, edx
stc
shr edi, 5
cmp bx, sp
clc
test dl, bl
sub edx, edi
stc
mov word [ecx + ebx*2 + 0x1b0], dx
movzx edx, word [ecx + ebx*2 + 0x1c8]
cmp dl, 0x23
test sp, 0x1a95
clc
cmp eax, 0x1000000
jae 0x160f71c
mov edi, dword [ebp - 4]
movzx edi, byte [edi]
test ecx, esp
stc
clc
shl esi, 8
test eax, 0x328c249c
stc
shl eax, 8
test dl, bl
cmc
or esi, edi
inc dword [ebp - 4]
xor edi, 0x16c62a35
stc
mov edi, eax
cmc
shr edi, 0xb
clc
test bx, bp
imul edi, edx
cmp di, 0x414b
cmc
cmp esi, edi
jae 0xf52978
mov eax, edi
mov edi, 0x800
sub edi, edx
cmc
cmp ecx, edx
shr edi, 5
add edi, edx
cwd
cmovs dx, dx
mov edx, dword [ebp - 0x30]
mov word [ecx + ebx*2 + 0x1c8], di
jmp 0xf529b3
sub eax, edi
sub esi, edi
mov edi, edx
cmp esi, ecx
test edi, 0x6dd9019f
shr edi, 5
cmp dl, al
clc
sub edx, edi
cmc
stc
test ecx, esp
cmp dword [ebp - 0x3c], 0
mov word [ecx + ebx*2 + 0x180], dx
jne 0x160fc2b
cmp dword [ebp - 0x10], 0
je 0x160ddd5
movzx edx, word [ecx + ebx*2 + 0x198]
clc
cmp al, 0x91
cmp eax, 0x1000000
jae 0x160fc6b
mov edi, dword [ebp - 4]
movzx edi, byte [edi]
shl esi, 8
cmp ax, 0x1680
cmc
shl eax, 8
stc
cmc
or esi, edi
dec di
not edi
bswap di
inc dword [ebp - 4]
movzx edi, di
xadd edi, edi
btc di, sp
mov edi, eax
clc
shr edi, 0xb
imul edi, edx
mov dword [ebp - 0x4c], edi
test dx, 0x6683
cmc
cmp esi, edi
jae 0x15c4e41
mov eax, edi
cmp eax, 0x2352252e
mov edi, 0x800
cmc
sub edi, edx
shr edi, 5
lea edi, [edi + edx]
cmp esp, edx
lea edx, [ebx + 0xf]
stc
cmp bp, 0x586c
cmp cx, dx
shl edx, 4
clc
test dx, 0x1640
add edx, dword [ebp - 0x1c]
cmp ecx, ebx
cmc
test edi, edi
mov word [ecx + ebx*2 + 0x198], di
neg edi
btc di, si
lea edx, [ecx + edx*2]
bt di, bx
mov edi, eax
mov dword [ebp - 8], edx
movzx edx, word [edx]
stc
cmp edi, 0x1000000
jae 0x160fd0f
shl edi, 8
test ebp, ecx
mov eax, edi
xor di, 0xb8
mov edi, dword [ebp - 4]
movzx edi, byte [edi]
cmp ebp, edi
stc
shl esi, 8
cmp di, sp
cmp esi, 0x132567ec
or esi, edi
mov edi, edi
inc edi
bswap di
inc dword [ebp - 4]
mov edi, eax
cmp bp, 0x1a4b
cmc
cmp bp, dx
shr edi, 0xb
stc
test si, ax
imul edi, edx
cmc
cmp esi, edi
jae 0x15d9b74
mov ecx, 0x800
movsx ax, bl
xor ah, 0xa6
btr ax, di
sub ecx, edx
shr ecx, 5
dec ax
movsx eax, di
add ecx, edx
rol ah, 0x2f
mov edx, eax
mov edx, dword [ebp - 8]
mov word [edx], cx
movsx eax, ax
rcl ch, cl
mov ecx, dword [ebp - 0x18]
mov eax, edi
mov edi, dword [ebp - 0xc]
test ax, si
cmp edi, ecx
sbb edx, edx
cmc
clc
and edx, dword [ebp - 0x24]
inc dword [ebp - 0x10]
test di, 0x3e62
sub edx, ecx
rcl ecx, 0xa6
mov ecx, dword [ebp - 0x34]
cmp ch, 0x35
cmp esi, ebp
clc
add edx, edi
mov dl, byte [edx + ecx]
mov byte [edi + ecx], dl
inc edi
cmp ebx, 7
sbb ecx, ecx
and ecx, 0xfffffffe
cmc
add ecx, 0xb
mov dword [ebp - 0x14], ecx
jmp 0x15caa98
sub eax, edi
stc
sub esi, edi
bts di, ax
mov edi, edx
cmp bp, 0x15eb
stc
shr edi, 5
cmp sp, dx
test edi, 0x579347cf
sub edx, edi
mov word [ebx + ecx], dx
inc ebx
cmp eax, esi
clc
sub ebx, 0x40
cmp ebx, 4
jb 0x15dd246
mov ecx, ebx
ror edi, 0x81
mov edx, ebx
dec edi
and di, sp
mov edi, 1
cmp edi, ebp
shr ecx, 1
and ebx, edi
cmc
cmp esi, 0x7d2c1d0d
sub ecx, edi
cmc
test cx, 0x157
or ebx, 2
test bp, 0x3210
cmp ebp, ebp
mov dword [ebp - 0x44], ecx
clc
cmp edx, 0xe
jae 0x15c9f55
shl ebx, cl
cmp bl, 0xd1
cmp si, di
sal cx, 0x40
mov dword [ebp - 0x38], edi
cmc
add ecx, esi
mov ecx, ebx
cmp eax, esi
sub ecx, edx
mov edx, dword [ebp - 0x20]
lea ecx, [edx + ecx*2 + 0x55e]
sar dx, cl
sar dx, 0xb1
ror edx, 0xbd
mov dword [ebp - 8], ecx
lea esp, [esp]
sub edx, edi
add dx, 0x3815
movzx edx, word [ecx + edi*2]
cmp eax, 0x1000000
jae 0x1610585
mov ecx, dword [ebp - 4]
test dl, 0xef
cmp ebp, edi
movzx ecx, byte [ecx]
shl esi, 8
shl eax, 8
cmp ebp, edx
cmc
stc
or esi, ecx
inc dword [ebp - 4]
test esi, 0x306e4a20
rcr cl, 0xf8
mov ecx, eax
shr ecx, 0xb
imul ecx, edx
cmp esi, ecx
jae 0x15c6f2a
mov eax, ecx
mov ecx, 0x800
sub ecx, edx
shr ecx, 5
cmp bx, 0x6e38
test ebx, ecx
clc
lea ecx, [ecx + edx]
movsx edx, cx
cmc
mov edx, ecx
sar ecx, cl
movsx cx, bl
mov ecx, dword [ebp - 8]
test eax, ecx
mov word [ecx + edi*2], dx
add edi, edi
jmp 0x15c6f61
add dword [ebp - 0x28], 0x112
cdq
sub dword [ebp - 0x14], 0xc
rcl dx, 0x86
rcr dh, cl
mov edx, dword [ebp - 4]
clc
test bh, 0x52
cmp eax, 0x1000000
jae 0x1610618
movzx ecx, byte [edx]
xor edi, 0x3da54ab8
and bh, bl
ror edi, 0xdb
shl esi, 8
btr di, 0xcc
bsr ebx, esi
shl eax, 8
shld ebx, esp, 0x77
cmp di, 0x2f0
ror bl, cl
or esi, ecx
not edi
inc edx
mov ecx, dword [ebp + 8]
rol bx, 0x59
mov dword [ecx + 0x1c], eax
mov eax, dword [ebp - 0xc]
sal di, 0x7d
bt di, 0xe6
mov dword [ecx + 0x18], edx
mov edx, dword [ebp - 0x28]
adc bl, 0x29
sal bl, cl
sub edi, 0x10703e24
mov dword [ecx + 0x24], eax
neg edi
mov di, 0x4f6c
rcr ah, 0x1e
mov eax, dword [ebp - 0x18]
xor ebx, 0x59226e7d
rol bl, 0xd0
mov dword [ecx + 0x48], edx
sal di, 0xaf
mov edx, dword [ebp - 0x10]
shl edi, 0x89
mov dword [ecx + 0x38], eax
dec bl
movsx edi, di
mov eax, dword [ebp - 0x30]
mov dword [ecx + 0x2c], edx
clc
mov edx, dword [ebp - 0x2c]
cmp bh, 0xda
mov dword [ecx + 0x40], eax
cmc
mov eax, dword [ebp - 0x14]
pop edi
xor bx, 0x1d18
bt bx, 0x48
mov dword [ecx + 0x20], esi
test eax, edx
and bx, bp
btc si, 0xb8
mov dword [ecx + 0x3c], edx
rcr edx, cl
xchg bx, si
mov edx, dword [ebp - 0x38]
inc si
pop esi
rol ebx, 0x48
mov dword [ecx + 0x34], eax
and bh, dh
mov dword [ecx + 0x44], edx
movzx ebx, dx
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0xc
sub eax, edi
cmc
sub esi, edi
mov edi, edx
cmp di, cx
cmc
shr edi, 5
clc
sub edx, edi
test dh, 0x6e
mov word [ecx + 2], dx
inc di
cmp si, bx
dec dl
lea edi, [ecx + 0x204]
and dl, 0x36
mov dword [ebp - 8], 0x10
mov dword [ebp - 0x1c], 0x100
bsf cx, bp
mov dword [ebp - 0x28], edi
rcr dx, cl
shrd dx, bp, 0xb4
mov edx, 1
adc cx, ax
add ecx, esi
nop
adc ch, dl
movzx ecx, word [edi + edx*2]
cmp eax, 0x1000000
jae 0x1615051
mov edi, dword [ebp - 4]
stc
clc
movzx edi, byte [edi]
clc
cmc
shl esi, 8
cmp al, bh
shl eax, 8
or esi, edi
inc dword [ebp - 4]
mov edi, eax
shr edi, 0xb
cmp bp, di
imul edi, ecx
cmp esi, edi
jae 0x15bba42
mov eax, edi
shld di, dx, 0x13
cmp ebp, ecx
bt di, 0xe2
mov edi, 0x800
stc
cmc
sub edi, ecx
shr edi, 5
cmp sp, 0x1bc7
lea edi, [edi + ecx]
neg cx
mov ecx, edi
shr edi, 0xeb
shl edi, 0x62
mov edi, dword [ebp - 0x28]
test ecx, edi
stc
test bp, 0x1341
mov word [edi + edx*2], cx
clc
add edx, edx
jmp 0x15bba77
movzx edi, word [edx + ecx*2]
cmp eax, 0x1000000
jae 0x161536a
mov ebx, dword [ebp - 4]
movzx ebx, byte [ebx]
shl esi, 8
shl eax, 8
test ah, 0x49
or esi, ebx
inc dword [ebp - 4]
cmp ecx, 0x66b00284
cmp esi, ecx
mov ebx, eax
shr ebx, 0xb
imul ebx, edi
cmp esi, 0x114d4994
test ebx, esi
stc
cmp esi, ebx
jae 0x160787d
mov eax, ebx
neg ebx
mov ebx, 0x800
sub ebx, edi
stc
clc
shr ebx, 5
cmp bp, 0x5806
add ebx, edi
cmc
cmp al, cl
cmp bp, 0x2d28
mov word [edx + ecx*2], bx
add ecx, ecx
jmp 0x16078b8